Servlet

김연수·2023년 2월 21일
0

Java

목록 보기
1/7

: 웹 요청과 응답의 흐름을 메서드 호출로 체계적으로 다룰수 있게 해주는 기술

주요 특징

 -client의 Request에 대해 동적으로 작동하는 웹 애플리케이션 컴포넌트
 -HTML을 사용하여 Response 한다
 -자바의 Thread를 이용하여 동작한다
 -MVC 패턴에서 컨트롤러로 이용된다
 -HTTP 프로토콜 서비스를 지원하는 HttpServlet 클래스를 상속받는다
 -UDP보다 속도가 느리다
 -HTML 변경 시 Servlet을 재 컴파일 해야 하는 단점이 있다

서블릿 컨테이너

서블릿을 관리해주며 클라이언트에서 요청하면 HttpServletRequest,Response 두 객체를 생성하며 post/get 여부에 따라 동적인 페이지를 생성하여 응답을 보낸다
<HttpServletRequest>
http프로토콜의 request정보를 서블릿에세 전달하기 위한 목적으로 사용하며 
헤더 정보, 파라미터, 쿠키, URI, URL등의 정보를 읽어 들이는 메서드와
Body의 Stream을 읽어 들이는 메서드를 가지고 있다

<HttpServletResponse>
WAS는 어떤 클라이언트가 요청을 보냈는지 알고 있고, 해당 클라이언트에게
응답을 보내기 위한 HttpServletResponse 객체를 생성하여 서블릿에게 전달하고 
이 객체를 활용하여 content type, 응답 코드, 응답 메시지 등을 전송한다

서블릿 컨테이너의 주요 기능

1. 생명주기 관리
2. 통신 지원
3. 멀티 스레딩 관리
4. 선언적인 보안관리

서블릿의 동작 과정

1. Servlet Request, Servlet Response 객체를 생성
2. 설정 파일을 참고하여 매핑할 Servlet을 확인
3. 해당 서블릿 인스턴스 존재의 유무를 확인하여 없으면 init() 메소드를 호출하여 생성
4. Servlet Container에 Thread를 생성하고 service를 실행
5. 응답을 처리하였으면 destory() 메서드를 실행 하여 
Servlet Request, Servlet Response 객체를 소멸

서블릿 설정 파일 (web.xml)

 <servlet> //서블릿 클래스를 서블릿으로 등록
 			//해당 서블릿을 참조할 때 사용할 이름
           <servlet-name>myServlet</servlet-name> 
           //서블릿으로 사용할 서블릿 클래스의 FullName
           <servlet-class>controller.MyServlet</servlet-class> 
     </servlet>
 
     <servlet-mapping>
     		//매핑할 서블릿의 이름
           <servlet-name>myServlet</servlet-name> 
           //매핑할 URL 패턴
           <url-pattern>/myServlet</url-pattern> 
     </servlet-mapping>

출처 : 코딩팩토리

profile
코린이

0개의 댓글