728x90
반응형
Servlet 이란?
- 자바 서블릿(Java Servlet)은 컨테이너에의해 관리 된다.
- 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말한다.
- Servlet은 자바코드 안에 HTML 을 포함한다.
Servlet 이 필요한 이유
- Servlet 이 없다면 우리는 다음과 같이 구별 없이 서버를 구현해야된다.
- 하지만 Servlet 이 대부분 담당하고
- 비즈니스 로직은 개발자가 구현하면된다.
Servlet 특징
- 쓰레드를 이용하여 동작한다.
- Servlet은 외부 요청에 대해 프로세스보다 가벼운 쓰레드로 동작하여 가볍다. - 다양한 플랫폼에서 동작한다.
- Servlet은 자바로 구현되므로 다양한 플랫폼에서 동작한다. - MVC 에서 Controller로 이용된다.
- UDP 보다 속다가 느리다.
- HTML 변경시 Servlet 재 컴파일 필요.
Servlet 구현
- doGet: HTTP GET 요청 처리
- doPost: HTTP POST 요청 처리
- doPut: HTTP PUT 요청 처리
- doDelete: HTTP DELETE 요청 처리
- doHead: HTTP HEAD 요청 처리
- doOptions: HTTP OPTIONS 요청 처리
@WebServlet("/home")
public class ServletExample extends HttpServlet{
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
//애플리케이션 로직
}
}
Life Cycle
Servlet, Init, destory 는 최초 한번씩만 수행되고
똑같은 요청이 있을 경우는 Service만 수행한다.
서블릿 HTTP 요청, 응답 흐름
- WAS는 Request, Response 객체를 새로 만들어서 서블릿 객체 호출
- 개발자는 Request 객체에서 HTTP 요청 정보를 편리하게 꺼내서 사용
- 개발자는 Response 객체에 HTTP 응답 정보를 편리하게 입력
- WAS는 Response 객체에 담겨있는 내용으로 HTTP 응답 정보를 생성
Servlet Container?
- Servlet 객체를 생성한다.
- Servlet 객체를 수행한다.
개념
- 웹 서버 또는 응용프로그램 서버의 일부이다.
- Servlet Container는 Servlet 들을 관리한다.
- 생명주기를 관리
특징
- Servlet은 요청이 들어오면 JVM 안에서 쓰레드를 생성하기 때문에 다른 CGI 언어들에 비해 서버 부하가 적게 발생한다.
- 객체를 생성후 xml을 분석한 다음 Servlet life cycle이 수행 된다.
- JSP도 서블릿으로 변환 되어서 사용
- 멀티 스레딩 관리
- 요청이 올때 마다 쓰레드를 생성해서 작업을 수행한다. - 서블릿 객체는 싱글톤으로 관리
- 고객의 요청이 올 때 마다 계속 객체를 생성하는 것은 비효율
- 최초 로딩 시점에 서블릿 객체를 미리 만들어두고 재활용 - 공유 변수 사용 주의
수행과정
728x90
반응형
'Development > WEB' 카테고리의 다른 글
[WEB] HTTPS (0) | 2021.08.17 |
---|---|
[WEB] HTTP 와 HTTPS 의 차이점 (0) | 2021.08.17 |
[WEB] Rest API 와 설계 (0) | 2021.08.09 |
[WEB] JSP 란? (0) | 2021.07.27 |
[WEB] HTTP 란? (0) | 2021.07.07 |
댓글