[ 정의]
- 요청-응답 프로그래밍 모델을 통해 액세스되는 응용 프로그램을 호스팅하는 서버의 기능을 확장하는 데 사용되는 Java 프로그래밍 언어 클래스입니다.(Servlet 으로 개발할때는 HttpServlet 상속받아 요청을 맵핑 시켰다. 요청과 응답을 담당하는 클래스가 servlet이라고 보면된다. 스프링에서 Controller는 Servlet 이 아니다. FrontController 패턴으로 DispatcherServlet 하나만 서블릿으로 요청을 다 받기 떄문이다.)
[ 특징 ]
- 싱글톤 으로 초기에 생성 됨
- 서블릿 컨테이너가 서블릿 객체 생성해주고 초기화, 호출, 종료 생명주기를 다룬다.
- JSP 도 서블릿으로 변환된다.
[ 주의 점 ]
- 싱글톤으로 관리되서 멤버 변수에 값을 넣으면 안된다 말그대로 공유되는 거기 떄문이다.!
[ 예제 코드 ]
@WebServlet(name = "helloServlet", value = "/hello-servlet")
public class HelloServlet extends HttpServlet {
private String message;
public void init() {
message = "Hello World!";
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html");
// Hello
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h1>" + message + "</h1>");
out.println("</body></html>");
}
public void destroy() {
System.out.println("destroy");
}
}
HttpServlet Class
1. 미리 구현 된 service 메소드가 Http 요청을 받는다.
2. service 메소드가 요청을 분석하여 HTTP Method 에 해당하는 override 된 함수를 찾아서 호출해준다.
'웹' 카테고리의 다른 글
WAS 스레드 방식 비교 (0) | 2022.08.27 |
---|---|
Http, 정적 웹 서버, 동적 웹 서버 정리 (0) | 2022.08.27 |
Rest Api 설계 (0) | 2022.07.06 |
csrf 방어 (0) | 2022.06.18 |
쿠키, 헤더 (0) | 2021.12.29 |