2022.01.05

초보개발·2022년 1월 5일
0

TIL

목록 보기
10/17

Servlet

@WebServlet(name="exampleServlet", urlPatterns="/example")
public class ExampleServlet extends HttpServlet{
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException {...}
}

Servlet은 서버에서 클라이언트의 요청을 처리하고 그 요청의 결과를 반환해주는 자바 기반의 웹 애플리케이션 프로그래밍 기술이다. 기존에는 웹 요청과 응답을 하나하나 작성하여 처리해야 했는데, 서블릿을 이용하게 되면 간단하게 메서드만 호출로 편리하게 개발할 수 있다.

서블릿의 특징

  1. 클라이언트의 요청을 동적으로 제공
  2. HTML로 응답
  3. java 스레드로 동작
  4. MVC에서 controller로 이용한다.
  5. udp보다 속도가 느리다.
  6. html 변경되면 서블릿을 다시 컴파일해야 한다.

서블릿 컨테이너


서블릿 컨테이너는 서블릿을 담고 관리해주는 컨테이너를 말하며, 톰캣같이 서블릿을 지원하는 WAS를 말한다. 서블릿 컨테이너는 서블릿 객체를 생성부터 초기화, 호출, 종료까지 모든 생명주기를 관리하는데, 서블릿 객체들은 싱글톤으로 관리된다.

  • HttpServletRequest : HTTP request 정보를 서블릿에게 전달하기 위해 사용하며, start line, header 등 정보를 읽어 올 수 있는 메서드 호출 가능
    • getHeader(name), getMethod(), getContentType() 등
  • HttpServletResponse : 이 객체를 생성해서 Content-Type, 상태코드 등 정보들을 담아 클라이언트에게 HTTP response을 전송
    • addCookie(cookie), setHeader(name, value), setStatus(sc) 등

서블릿 컨테이너의 특징

  1. 생명 주기 관리 : 서블릿 객체를 생성, 초기화, 호출, 종료를 관리
  2. 통신 지원 : 클라이언트의 요청을 받고 응답을 보낼 수 있도록 웹 서버와 소켓을 만들어 통신할 수 있도록 함
  3. 멀티쓰레드 : 동시에 요청이 들어와도 응답을 할 수 있도록 멀티 스레드 지원
  4. 선언적 보안 관리 : 서블릿 컨테이너는 보안 기능도 지원

0개의 댓글