Servlet 은 WAS에서 동작하는 Java 의 클래스를 말하며, 단순히 HTTP Request 에 대해 HTTP Response 를 응답하는 고차원 추상화를 제공하는 클래스를 말한다.
Java로 웹 어플리케이션 제작 시 동적인 처리를 담당한다.
Web Server 의 성능 향상을 위해 사용되는데, 외부 요청에 대해 Thread 로 할당하여 응답하므로 아주 가벼운 서버로 구현되고 Java 의 특성 상 다양한 플랫폼에서도 동작이 가능하다.
Servlet 은 일반적으로 HttpServlet 클래스를 상속받으며 웹페이지 개발시 JSP 와 Servlet 을 함께 이용하는 것이 도움이 된다.
(JSP 는 HTML 문서 안에서 Java 코드를 포함하는 반면, Servlet 은 Java 코드 안에서 HTML 코드를 사용하곤 한다.)
Servlet 3.0 미만의 버전에서는 web.xml 파일에 Servlet 을 등록하고 사용하도록 되어있지만,
Servlet 3.0 이상에서는 web.xml 파일을 사용하지 않으며 대신 Annotation 을 이용해 정의한다.
3.0 이상에서 어노테이션을 이용해 서블릿을 작성할 때에는
@WebServlet("/test")
public class TestServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.print("Hello world");
out.close();
}
}
위와 같이 작성하게 된다.
Java Servlet 은 Servlet Container 위에서 동작가능한데, Tomcat 과 같은 서블릿 컨테이너 들은 다음과 같은 기능들을 지원함으로써 서블릿의 동작을 돕는다.
- Network Services : Remote System 및 네트워크 서비스를 접근하고 이용할 수 있도록 제공한다.
- Decode and Encode MIME based Message : MIME 타입의 메세지에 대한 인코딩 / 디코딩을 제공한다.
- Manage Servlet container : 서블릿 들의 라이프사이클을 관리해준다.
- Resource Management : HTML, JSP 등과 같은 static 및 dynamic 리소스 들을 관리해준다.
- Security Service : 리소스 접근에 대한 인증과 권한을 담당한다.
- Session Management : 세션을 관리한다.
Tomcat 과 같은 Servlet Container 들은 서블릿들을 구동시켜 WAS 로써 동작할 수 있도록 해준다.
'Server > Basic' 카테고리의 다른 글
COMET 이란? (0) | 2019.01.23 |
---|---|
서버 URL 처리 시, forward 와 redirect 의 차이점 (0) | 2018.12.26 |
HTTP/2 특징들에 대한 정리 (0) | 2018.12.17 |
무중단 배포의 원리와 솔루션 종류 (0) | 2018.12.09 |
NGINX 를 이용한 환경 설정 방법 (0) | 2018.12.04 |