* Servlet이란?
- 웹 서비스를 위한 자바 클래스
- 자바를 이용하여 웹을 만들기 위해 필요한 기술
- 웹 프로그래밍에서 클라이언트의 요청을 처리하고 그 결과를 다시 클라이언트에게 전송(응답)하는 Servlet 클래스의 구현 규칙을 지킨 자바 프로그래밍 기술
ex) 사용자가 로그인을 하려고 할 때 아이디와 비밀번호를 입력하고 로그인 버튼을 누르면 서버는 아이디와 비밀번호를 확인하고 다음 페이지를 띄워주는 역할 수행
- 즉, Servlet은 자바 애플리케이션 코딩을 하듯 웹 브라우저용 출력 화면을 만드는 방법
* Servlet 특징
- 클라이언트의 요청에 대해 동적으로 작동하는 웹 애플리케이션 컴포넌트
- HTML을 사용하여 요청에 응답
- java thread를 이용하여 동작
- mvc 패턴에서 controller로 이용
- http 프로토콜 서비스를 지원하는 javax.servlet.http.HttpServlet 클래스를 상속받음
- servlet에 작성한 html 코드 변경시 재컴파일을 해야 되는 단점이 있음
* Servlet 상속 관계
- 서블릿 클래스는 반드시 javax.servlet.http.HttpServlet 클래스를 부모 클래스로 상속받아야 함
- 서블릿 상속 관계도
javax.servlet.Servlet 인터페이스
ㄴ javax.servlet.GenericServlet 추상 클래스
ㄴ javax.servlet.http.HttpServlet 추상 클래스
* Servlet 동작 방식
1. 사용자(클라이언트)가 URL(Uniform Resource Locator)을 클릭하면 HTTP Request Servlet Container로 전송
2. Http Request를 전송받은 Servlet Container는 HttpServletRequest, HttpServletResponse 두 객체 생성
3. DD(배포 서술자, Deployment Descriptor) = web.xml은 사용자가 요청한 URL을 분석하여 어느 서블릿에 요청할 것인지 찾음
4. 해당 서블릿에서 init() 메소드를 먼저 호출한 후 service() 메소드를 호출하여 클라이언트로부터 전송받은 방식인 GET, POST 여부에 따라 해당 메소드 (doXXX())를 호출함
5. doGet() / doPost() 메소드는 동적 페이지를 생성 후 HttpServletResponse 객체에 응답을 보냄
6. 응답이 끝나면 destory() 메소드를 호출하여 HttpServletRequest, HttpServletResponse 객체 소멸
'Language' 카테고리의 다른 글
마이바티스 설정하기 (0) | 2022.05.16 |
---|---|
Get/Post (0) | 2022.03.17 |