1. Servlet이란?
간단히 말해서, JAVA + Web이다.
JAVA로 웹페이지를 동적으로 생성하는 서버 프로그램을 의미하며, Java코드 안에 HTML을 포함하는 형태이다.
public class Hello extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String name= "홍길동";
out.println("");
out.println("<html>");
out.println("<body>");
out.println("안녕하세요! "+name+"입니다.");
out.println("</body>");
out.println("</html>");
//Servlet = html를 java에 넣음 => ""지옥..
}
}
2. Servlet 상속 구조
- Servlet 구현 방법
1) Servlet을 구현
2) GenericServlet을 상속
3) HttpServlet을 상속 (주로 사용됨)
3. Servlet 동작 과정
1. 전체 과정
- WAS에 Servlet을 1개 등록해서 이용
- Servlet Container가 Servlet을 관리한다. Servlet Container란 Web Container인 WAS를 말한다.
- class(main method가 없음)를 만들어서 Servlet을 등록하면 알아서 실행 (@WebServlet("서블릿 이름"))
1) 첫 client에 의한 최초 요청을 받으면, Servlet Container는 Servlet 객체를 생성하고 초기화(한 번만)
2) 여러 client들의 요청을 받을 때마다 thread를 만들어서 요청 처리
3) Servlet 객체가 필요 없을 때 제거(한 번만)
=> Servlet 객체 1개로 여러 요청을 처리
2. 세부 과정(Life-Cycle)
1) Constructor 생성자
2) init()
- 서블릿이 메모리에 로드될 때 한번 호출
3) service(), doGet(), doPost()
- service()에서 요청 방식이 get인지 post에 따라 doGet() 혹은 doPost()를 호출
- doGet() 혹은 doPost()를 바로 호출도 가능
- 여러 thread를 만들어 요청 처리
4) destroy
- 서블릿이 메모리에서 해제되면 호출
*코드 수정 시 => destory() => init()
'Programming > Servlet & JSP' 카테고리의 다른 글
Servlet & JSP (1) - 기본객체(내장객체) (0) | 2022.03.25 |
---|---|
[환경설정] Context root 변경 (0) | 2022.03.24 |
[환경설정] Servlet & JSP 프로젝트 생성 (0) | 2022.03.24 |
JSP (2) - Scriptlet : 스크립틀릿, 주석문, 지시자 (0) | 2022.03.23 |
Web Architecture (0) | 2022.03.22 |