1. Servlet의 JSP의 차이점
♟️ Servlet
- 서버환경에서만 돌아간다.
- 자바이지만, 그 안에 문자열 형태로 html이 있다.
- 네트워크로 클라이언트에게 html을 전달한다.
♟️ JSP
- Servlet의 단점을 보안한 프로그램이다.
- html로 보이지만 서블릿이다.
(내부에서 서블릿으로 변환해서 프로그램이 돌아간다.)
- 그 안에 자바언어를 비슷하게 사용할 수 있다.
2. Servlet의 실행과정
- 클라이언트가 페이지를 요청한다.
(get 또는 post 방식으로 요청한다.)
- 요청한 페이지가 Html이면 WAS가 찾아서 보내준다.
- 요청한 페이지가 Servlet이면 WAS는 이 페이지가 있는지 확인한다.
- 있다면 HttpServletRequest와 HttpServletResponse 객체를 생성한다.
- 해당 Servlet 객체를 생성하고, 사용자의 요청을 처리할 Thread를 생성한다.
(HttpServletRequest는 모든 요청 정보를, HttpServletResponse는 모든 응답 정보를 가지고 있다.)
- Servlet의 service() 메소드를 호출하고, 요청방식(get,post)에 따라서 어떤 메소드를 호출할지 결정한다.
- 요청방식에 따라 doGet() 또는 doPost()메소드를 호출할 때, 매개변수로 HttpServletRequest와 HttpServletResponse 두어
사용자의 요청을 처리하고, 응답을 작성한다.
- 작성된 응답을 클라이언트에 전송한다.
- Thread는 소멸한다.
3. GET 방식과 POST 방식
♟️ GET 방식(url)
♟️ POST 방식
- 서버로 정보를 올리기 위해 설계되었다.
- 데이터크기가 무제한이다.
- 헤더에 데이터가 들어가서, 보안에 안전하다.
- 폼안에서만 넣을 수 있다는 제한이 있다.
4. Servlet의 라이프 사이클 관련 메소드 정리
♟️ init() :
- Servlet 객체를 디폴트 생성자를 이용해 생성할 때,
init()메소드를 사용해서 서블릿 객체를 초기화한다.
- 한 번만 호출된다.
♟️ service() :
- HTTP 메소드를 참조하여 doGet()을 호출할지, doPost()를 호출할지 결정한다.
- 요청이 있을 때마다 호출된다
♟️ destroy() :
- Servlet이 소멸될 때 호출된다.
- 자원해제와 관련된 작업을 한다.
- init() 메소드와 같이 한 번만 호출된다.