Servlet은 java언어를 사용하여 웹프로그램을 제작하는 것이다.
Servlet 동작구조
- Servlet 클래스는 HttpServlet 클래스를 상속받음
1 |
|
클라이언트 요청에 따라 서블릿 컨테이너는 service() 메서드를 호출하고, service() 메서드는 요청이 GET인지 POST인지 구분하여 각각 doGet(), doPost() 메서드를 호출한다.
- GET & POST 방식
Get방식 | POST방식 |
---|---|
URL값으로 정보가 전송되어 보안에 약함 | header를 이용해 정보가 전송되어 보안에 강함 |
Form태그 method 속성값 = get | Form태그 method 속성값 = post |
HttpServlet 클래스
HttpServlet 클래스에서 사용자 요청을 처리하는 doGet/doPost 메서드는
모두 HttpServletRequest와 HttpServletResponse 객체를 매개변수로 가지고 있다.
HttpServletRequest와 HttpServletResponse 객체는 서블릿과 클라이언트를 연결해주는 중요한 객체들이다.
HttpServletRequest는 클라이언트의 요청 처리 객체이고
HttpServletResponse는 클라이언트에게 응답 처리 객체이다.
- 요청처리객체 및 응답처리객체를 톰캣에서 받음
1. doGet()
- html내 form태그의 method속성이 get일 경우 호출된다.(웹브라우저의 주소창을 이용하여 servlet을 요청한 경우에도 호출된다)
1 |
|
- doGet메소드는 매개변수로 HttpServletRequest와 HttpServletResponse를 받는다.
1 |
|
- HttpServletResponse 객체의 setContentType() 메소드 호출하여 응답방식 결정한다( euc-kr로 설정해야 한글이 깨지지 않음)
1 |
|
- HttpServletResponse 객체의 getWriter() 메소드를 이용하여 출력 스트림을 얻는다.
1 |
|
- 출력스트림의 println()메소드를 이용하여 출력하면 웹브라우저에 출력된다.
1 |
|
- 마지막 출력객체를 닫는다.
1 |
|
- 출력결과
2. doPost()
- html 내 form 태그의 method 속성이 post일 경우 호출된다.
1 |
|
나머지는 위에 적은 doGet랑 동일하다.
- 출력결과
컨텍스트 패스(Context Path)
WAS(Web Application Server)에서 웹어플리케이션을 구분하기 위한 path이다.
이클립스에서 프로젝트를 생성하면 자동으로 server.xml에 추가된다.
출처
Seoul Wiz, 신입SW인력을 위한 실전 JSP Servlet 동영상과정, https://www.youtube.com/watch?v=APJAJeePl4g&list=PLYBmkgNU_x7Zj0nCzt5D0qV33C_rU1NK2