※ Context Path : 웹 어플리케이션을 구분하기 위한 경로, 프로젝트 생성 시 server.xml에 자동으로 추가됨. request의 getContextPath() 메소드는 일반적으로 URL에서 프로젝트 이름 부분을 반환한다.
1. doGet, doPost
서블릿 파일을 생성할 때 메소드 생성 체크 박스 목록에 doGet, doPost 가 있다.
1) doGet : Get방식에서 호출되는 메소드, URL에 정보가 포함되어 보안에 약함. 기본 호출 메소드.
2) doPost : Post방식에서 호출되는 메소드, URL에 정보가 포함되지 않아 안전하며, 헤더에 정보를 실음.
※ 둘다 매개 객체로 HttpServletRequest 라는 요청 객체와 HttpServletResponse 라는 응답 객체를 받는다.
* 응답 객체의 주요 메소드
- setContentType() : 응답 방식 결정. 예) setContentType("text/html; charset=euc-kr");
- getWriter() : 웹 브라우저에 출력하기 위한 출력 스트림, 동작이 끝나고 이 메소드 내의 close() 메소드로 닫아 주어야 한다.
2. Servlet 기본 원리
1) Servlet 작동 순서
사용자가 Servlet 요청을 할 때마다 웹 서버와 웹 어플리케이션 서버를 거쳐서, Servlet 컨테이너안에 스레드와 Servlet 객체가 생성된다.
2) Servlet 라이프 사이클
Servlet은 최초 요청 시 객체가 만들어져 메모리에 로딩되는데, 그 이후 요청부터는 기존의 객체를 재활용하게 된다. 이것이 Servlet이 응답, 동작 속도가 빠른 이유다.
Servlet 객체 생성 (1회) -> init() 호출 (1회) -> service(), doGet(), doPost() 호출 (요청시 매번) -> destory() 호출 (1회)
* service() : 브라우저의 요청(doGet(), doPost())을 처리하도록 하는 메소드
initPostConstruct() : init() 전에 호출되는 선처리 메소드
destroyPreDestroy() : destroy() 후에 호출되는 후처리 메소드
3) HTML의 form 정보들을 Servlet에서 받는 과정
<form action=경로 method="post">
<input type="text" name="id">
<input type="password" name="pw">
<input type="submit" value="제출"> <!-- 이 버튼을 누르면 전송됨 -->
<input type="reset" value="초기화">
</form>
protected void doPost(HttpServletRequest request, HttpServletResponse response)}
String id = request.getParameter("id");
String password = request.getParameter("password");
// 작업
}
getParameter("id") : name이 "id"인 요소를 찾아 value값을 반환한다.
getParameterValues("id") : name이 "id"인 요소들을 찾아 value값들을 배열의 형태로 반환한다.
3. 한글 처리
1) GET 방식 - server.xml 파일의 Connector 요소에 다음 속성을 추가해준다.
주의할 점이 있다면 URLEncoding 이 아니라 URIEncoding이다.
2) POST 방식 - HttpServletRequest의 setCharacterEncoding() 메소드를 이용한다.
'Spring 사전 준비 > JSP Servlet' 카테고리의 다른 글
[JSP Servlet] JSP 태그 종류 / JSP 동작 원리 (0) | 2020.11.26 |
---|---|
[JSP Servlet] 초기화 파라미터 / 데이터 공유 / Listener (0) | 2020.11.26 |
[JSP Servlet] Servlet 문서 작성법 (0) | 2020.11.24 |
[JSP Servlet] MVC란? / JSP 문서 작성법 (0) | 2020.11.24 |
Tomcat 환경 설정 및 구동 (0) | 2020.11.23 |
댓글