녕지의 개발 블로그
article thumbnail
Published 2022. 3. 16. 20:00
Servlet Language

* 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
profile

녕지의 개발 블로그

@녕지

주니어 개발자가 쓰는 IT에서 살아남기 . . .