일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 테스트 자동화
- katalon 자동화
- katalon 비교
- CSTS 폭포수 모델
- 피보나치 예제
- bfs 미로탐색 java
- 피보나치함수 예제
- 해외증권 양도세 한국투자증권
- 해외주식 양도세 신고
- 한국투자증권 양도세 신고
- 최대공약수 예제
- 재귀 예제
- tomcat log
- Katalon Recorder 사용법
- js 자동완성
- oracle group by
- katalon
- 주식 양도세 신고방법
- katalon 사용법
- 한국투자증권 해외주식 양도세
- recursion example
- 재귀함수 예제
- 톰캣 실시간 로그
- java.sql.SQLSyntaxErrorException
- 국세청 해외주식 양도세 신고방식
- git 연동
- javascript 자동완성
- 피보나치함수
- katalon xpath
- 홈택스 해외주식 양도세
- Today
- Total
목록java/JSP (17)
엄지월드
쓰레드 애플리케이션 코드를 하나하나 순차적으로 실행하는 것은 쓰레드 자바 메인 메서드를 처음 실행하면 main이라는 이름의 쓰레드가 실행 쓰레드가 없다면 자바 애플리케이션 실행이 불가능 쓰레드는 한번에 하나의 코드 라인만 수행 동시 처리가 필요하면 쓰레드를 추가로 생성 단일 요청 - 쓰레드 하나 사용 요청1 써블릿 처리 지연 -> 요청2 쓰레드 대기 요청 마다 쓰레드 생성 장점 동시 요청을 처리할 수 있다. 리소스(CPU, 메모리)가 허용할 때 까지 처리가능 하나의 쓰레드가 지연 되어도, 나머지 쓰레드는 정상 동작한다. 단점 쓰레드는 생성 비용은 매우 비싸다. 고객의 요청이 올 때 마다 쓰레드를 생성하면, 응답 속도가 늦어진다. 쓰레드는 컨텍스트 스위칭 비용이 발생한다. 쓰레드 생성에 제한이 없다. 고객..
서블릿 객체는 싱글톤으로 관리 고객의 요청이 올 때 마다 계속 객체를 생성하는 것은 비효율 최초 로딩 시점에 서블릿 객체를 미리 만들어두고 재활용 모든 고객 요청은 동일한 서블릿 객체 인스턴스에 접근 공유 변수 사용 주의 서블릿 컨테이너 종료 시 함께 종료 동시 요청을 위한 멀티 쓰레드 처리 지원 WAS가 여러명이 접속할 수 있도록 지원해줌
상황 프로시저를 설정하고 out 값을 자바에서 받아서 처리하려고 하니 위와 같이 에러가 발생했었다. create definer = root@localhost procedure INSERT_BOARD(IN p_title varchar(100), OUT total int) BEGIN START TRANSACTION; INSERT INTO boards (btitle) VALUES (p_title); SELECT LAST_INSERT_ID() INTO total; UPDATE boards SET parentNo = total WHERE bno = total; COMMIT; END; 원인 프로시저에서는 OUT 값을 설정해주지만, java에서 값을 받도록 처리하지 않아서 발생하는 에러였다. 나는 cstmt.exec..
올바르지 않은 방법 이유 : SQL Injection의 위험이 있음. String sql = "SELECT * " + " FROM board " + " WHERE title LIKE ? "; pstmt.setString(1, "%"+search+"%"); 올바른 방법 순수하게 인자만 넘어와야 한다. String sql = "SELECT * " + " FROM board " + " WHERE title LIKE CONCAT('%', ?, '%') "; pstmt.setString(1, "%"+search+"%");
/Users/ejy1024/git/DZ_WebChat/src/main/java/Filter/EncoderFilter.java java: illegal character: '\ufeff' /Users/ejy1024/git/DZ_WebChat/src/main/java/Filter/EncoderFilter.java java: class, interface, or enum expected -> 파일 삭제 후 그대로 다시 생성하여 해결하는게 낫다.
Servlet에서 UTF-8을 인코딩 해주었음에도 불구하고 Reponse에서 ISO-8859-1로 표시되는 기이한 현상이 있었다. 그래서 아래 항목들을 변경해주면서 3시간동안 삽질하였다. - Preferences > Editor > File Encoding 에서 인코딩 UTF-8로 변경 - jsp 파일 내에 contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" 설정 - Help > Edit Custom VM Options에서 -Dfile.encoding=UTF-8 를 추가 - Tomcat EditConfigure에서 VM option을 -Dfile.encoding=UTF-8로 설정 - Tomcat/conf 폴더에 있는 server.xml에서 URIEnc..
애너테이션 서블릿 매핑 @WebServlet의 속성 값을 통해 해당 Servlet과 매핑될 URL 패턴을 지정 URL 매핑 방법 1) web.xml에 작성 2) Servlet 파일 내 어노테이션(@) 활용 서블릿 파일 내 클래스 위에 어노테이션 선언 @WebServlet("/hello") URL 매핑을 하는 이유 URL의 간소화 실제 서블릿 클래스를 공개하지 않기 위해서이다. 실제 호출되는 서블릿 클래스는 HelloServlet이지만 외부에서 이 서블릿을 요청할 때에는 서블릿 클래스 이름이 아닌 서블릿 클래스와 매핑된 URL인 hello로 접근한다. 계층 구조 ourpackage.OurServlet -> javax.servlet.http.HttpServlet -> javax.servlet.Generic ..
Ajax를 통해서 @Webservlet 호출하여 Response 시에 한글이 깨지는 현상이 있었다. 신기하게도 System.out.println(gson.toJson(wifilist)); 를 통해 Server에서 로그를 찍어보면 한글로 정상 출력이 되었는데, Client에서는 깨짐 현상이 발생했었다. 로직을 파악해보니, 이유는 Servlet에서 메시지 처리 중에 UTF-8이 아닌 ISO로 변환된다는 것이었다. 그래서 열심히 삽질한 결과 resp.setContentType("text/html; charset=UTF-8"); 을 추가하면 해결된다는 결과를 얻을 수 있었다. Response Header에서도 Content-type에 text/html;charsetUTF-8이 표시된 것을 확인할 수 있다. (참..
okhttp를 활용해 특정 API를 호출하기 위한 방법에 대한 안내를 해주겠다. 아래 코드는 공공 와이파이 API를 호출하기 위한 코드이다. (http://openapi.seoul.go.kr:8088/{APIKey}/json/TbPublicWifiInfo/1/5/) 호출한 response 값을 result에 저장해주고 있다. package com.example.wifi; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import java.io.*; import java.net.HttpURLConnection; import javax.servlet.http.*; import javax.servlet.annotati..