본문 바로가기

Web

[Web] Servlet

📌 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