📌 Servlet 특징
- 클라이언트의 요청에 대해 동적으로 작동하는 웹 애플리케이션 컴포넌트
- HTML을 사용하여 요청에 응답
- Java Thread를 이용해 동작
- MVC 패턴에서 Controller로 이용
- HTTP 프로토콜 서비스를 지원하는 HttpServlet 클래스를 상속받는다.
- HTML 변경 시 Servlet을 재 컴파일해야 하는 단점이 있다.
📌 Servlet 동작 방식
- 사용자가 URL을 입력하면 HTTP Request가 Servlet Container로 전송한다.
- 요청을 받은 Servlet Container는 HTTPServletRequest, HttpServletResponse 객체를 생성한다.
- web.xml을 기반으로 사용자가 요청한 URL이 어느 Servlet에 대한 요청인지 찾는다.
- 해당 Servlet에서 service 메소드를 호출한 후 클라이언트의 GET, POST 여부에 따라 doGet(), doPost()를 호출한다.
- doGet(), doPost() 메소드는 동적 페이지를 생성한 후 HttpServletResponse 객체에 응답을 보낸다.
- 응답이 끝나면 HTTPServletRequest, HttpServletResponse 두 객체를 소멸시킨다.
👉 Get : 요청할 때 입력하는 내용이 url 뒤에 추가되어 전송되는 방식
1. 클라이언트가 작성한 내용이 그대로 노출된다.
2. 전송할 수 있는 데이터의 크기에 제한이 있다.
3. 서버의 데이터를 가져온다.
👉 Post : 요청 메시지 body에 추가되어 전송되므로 클라이언트에 노출되지 않지만 툴을 이용해서 확인하면 확인할 수 있으므로 암호화해서 전송해야 한다.
1. 보낼 수 있는 데이터 크기에 제한이 없다.
2. 서버의 값을 클라이언트가 원하는 값으로 update 하는 경우
📌 Servlet 작성 규칙
- 표준화된 폴더 구조 안에서 서블릿 디렉터리에 저장되어야 한다. (classes 폴더)
- public 클래스로 작성해야 한다. (서버가 찾아서 실행해야 하기 때문)
- 서블릿 클래스를 상속해야 한다.
- 서버가 호출하는 메소드가 오버 라이딩해야 한다.
- 반드시 기본 생성자를 가지고 있어야 한다.
'Web' 카테고리의 다른 글
[Web] API & REST API & RESTful API 알아보기 (0) | 2023.05.22 |
---|---|
[Web] 동기와 비동기 (0) | 2022.09.13 |
[Web] Web Server & WAS & Web Container (0) | 2022.05.13 |
[Web] HTTP & 프로토콜 이란? (0) | 2022.05.12 |
[Web] Servlet & JSP 이란? (0) | 2022.05.12 |