Backend/Java

Java Servlet Class를 알아보자!

Juwon2106 2022. 1. 23. 16:14
728x90

오늘 알아볼 포스팅 내용으로는 Java Servlet에 대해 알아보겠습니다.

https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94_%EC%84%9C%EB%B8%94%EB%A6%BF

Java Servlet이란?

 

Java를 사용하여 Web Page를 동적으로 사용하는 Server Side Program 혹은 그에 맞는 사양을 말하며 

흔하게 Servlet( 서블릿 )이라고 불립니다.

 

Java Servlet은 Web Server의 성능을 향상하기 위해 사용되는 Java Class의 종류 중 하나입니다.

 

Servlet은 JSP와 비슷하지만 JSP( Java Server Pages )는 HTML 문서 안에 Java 코드를 포함하고 있는 반면에,

Servlet은 Java 코드 안에 HTML을 포함하는 큰 차이점이 있습니다. 

 

Servlet은 Java를 사용하여 웹을 만들기 위해 필요한 기술입니다.

 

즉, 사용자의 요청에 대한 결과를 다시 전송해주는 역할을 하는 Java Program입니다.

 

Servlet은 Java로 구현된 *CGI입니다.

 

Java Servlet과 JSP는 *SSR( Server Side Rendering )방식을 사용하는 대표적인 아키텍처입니다.

 

SSR이란?

서버에서 사용자에게 보여줄 페이지를 모두 구성하여 사용자에게 페이지를 보여주는 방식입니다.

 

CGI란?

특별한 라이브러리나 도구를 의미하는 것이 아닌 별도로 제작된 Web Server와 Program 간의 교환 방식입니다.

 

CGI는 프로그래밍 언어의 구분을 하지 않고 구현이 가능하며, 별도로 제작한 HTML의 GET, POST Method 방법으로 사용자의 Data를 환경변수로 전달하고, 프로그램의 표준 출력 결과를 클라이언트에게 전송하는 것입니다.

 

 

Servlet이 가지고 있는 특징

사용자의 요청( Request )에 대해 동적으로 작동하는 웹 애플리케이션 컴포넌트입니다.

 

HTML을 사용하여 요청에 응답합니다.

 

Java Thread를 이용하여 동작합니다.

 

MVC Pattern에서 Controller의 역할을 합니다.

 

HTTP 프로토콜 Service를 지원하는 javax.servlet.http.HTTPServlet Class를 상속받습니다.

 

TCP 프로토콜에 기초반 Servlet은 UDP 방식보다 처리 속도가 느립니다.

 

HTML 코드의 변경 시에 Servlet을 다시 컴파일해야 합니다.

 

 

https://mangkyu.tistory.com/14

Servlet의 동작 과정

사용자( 클라이언트 )가 URL을 입력하면 HTTP Request가 Servlet Container로 전송합니다.

 

요청을 전송받은 Servlet Container는 HttpServletRequest, HttpServletResponse 객체를 생성합니다.

 

사용자가 요청한 URL이 어떤 Servlet에 대한 요청인지 찾습니다.

 

해당 Servlet에서 클라이언트의 요청 방식( Get, Post )에 따라 doGet() 또는 doPost()를 호출합니다.

 

doGet(), doPost() 메서드는 동적 페이지를 생성한 후에 HttpServletResponse 객채에 응답을 보냅니다.

 

응답이 끝나면 HttpServletRequest, HttpServletResponse 두 객체를 소멸시킵니다.

 

이러한 과정을 생명 주기라고 합니다.

 

 

https://linked2ev.github.io/devlog/2018/10/17/JSP-2.-What-Servlet/

Servlet의 생명주기( Life Cycle )

  • Init은 Servlet이 메모리에 최초에 로드될 때 실행
  • Servlet은 javax.servlet.http Package에 준비되어 있는 HttpServlet Class를 상속하여 생성
  • 사용자가 Request를 요청하면 HttpServletRequest, HttpServletResponse 두 객체를 생성
  • Service 메서드는 HTTP Method 타입에 따라 doGet 또는 doPost를 호출
  • doGet, doPost 메소드는 동적 페이지를 생성
  • HttpServletResponse 객체에 응답
  • 응답이 완료되면 HttpServletRequest, HttpServletResponse 두 객체를 소멸( 삭제 )
  • Destroy는 서버를 닫을 때 수행되는 콜백

이번 포스팅에서는 Java Servlet에 대해 알아보았습니다.

 

 

728x90