1 분 소요

📘 서블릿이란?

서블릿(Servlet)은 자바 웹 애플리케이션 개발에 사용되는 기술 중 하나로, 동적인 웹 페이지를 생성하기 위해 자바 언어로 작성된 프로그램이다. 서블릿은 웹 서버에서 클라이언트 요청을 처리하고, 동적인 콘텐츠를 생성하여 응답을 제공한다.

📖 사용되는 클래스와 메서드

httpServlet.png

https://woojong92.tistory.com/entry/Servlet구조와-HttpServlet-클래스

서블릿은 javax.servlet.http.HttpServlet 클래스를 상속받는 자바 클래스로, 사용하기 위해서는 별도의 라이브러리(servlet-api.jar)가 필요하다.

📝 HttpServlet

  • HTTP 프로토콜을 이용하는 서블릿을 개발하기 위한 클래스
  • GenericServlet 클래스를 상속 받음

| 메서드 | 설명 | | — | — | | doGet (HttpServletRequest req, HttpServletResponse resp) | 클라이언트로부터 GET 요청을 받았을 때 호출 | | doPost (HttpServletRequest req, HttpServletResponse resp) | 클라이언트로부터 POST 요청을 받았을 때 호출 | | init() | 서블릿이 초기화될 때 호출 서블릿에서 사용할 데이터베이스 연결 등을 초기화하거나, 설정 정보를 로딩 | | service (HttpServletRequest req, HttpServletResponse resp) | 모든 HTTP 요청에 대해 호출 요청 메소드를 분석하여 각각의 메소드에 대응하는 doXXX() 메소드를 호 | | destroy() | 서블릿이 종료될 때 호출서블릿에서 사용한 리소스를 해제하거나, 정리 작업을 수행 |

  • HttpServlet 클래스는 추상 클래스이므로, do로 시작하는 메서드 중 하나는 반드시 오버라이딩을 해주어야 한다.

GET 방식

서버에 있는 정보를 가져오려고 설계된 방법으로, 서버에는 최대 240Byte까지 데이터를 전달할 수 있다.

URL이 노출되기 때문에 보안에 문제가 생길 수 있다.

POST 방식

서버로 정보를 올리려고 설계된 방법으로, 서버에 전달할 수 있는 데이터 크기에 제한이 없다.

URL에는 매개변수가 표시되지 않는다.

📝 HttpServletRequest

메서드 설명
getParameterNames() 현재 요청에 포함된 매개변수 이름을 열거 형태로 넘겨준다.
getParameter(name) 문자열 name과 같은 이름을 가진 매개변수 값을 가져온다.
getParameterValues(name) 문자열 name과 같은 이름을 가진 매개변수 값을 배열 형태로 가져온다. ( 주로 checkbox, mutilple list 등에 사용 )
getMethod() 현재 요청이 Get인지, Post인지 파악해서 가져온다.
setCharacterEncoding() 현재 JSP로 전달되는 내용을 지정한 캐리터셋을로 변환해 준다.

📝 HttpServletResponse

메서드 설명
setContentType(type) 문자열 형태의 type에 지정된 MIME Type으로 Content Type을 지정한다.
sendRedirect(url) 클라이언트 요청을 다른 페이지로 보낸다.

📖 서블릿의 라이프사이클

servletLifecycle.png

  • 클라이언트가 request 정보를 보냄
  • 웹서버가 request의 헤더를 확인해서 서블릿이면 서블릿 컨테이너에 처리를 넘김
  • 서블릿 컨테이너는 WEB-INF에서 요청 받은 서블릿을 찾음
  • 서블릿 객체가 메모리에 있는지 확인
  • 요청 받은 서블릿 객체가 없다면 해당 서블릿을 메모리에 로딩하고 객체 생성

    서블릿은 최초 요청 시에만 객체를 생성하고, 그 이후부터는 생성된 객체를 재활용

  • init() 메서드 실행

    GenericServlet 클래스에 구현되어 있음

  • service() 메서드 실행

    클라이언트 요청이 있을 때마다 해당 메서드가 실행이 된다. GenericServlet 클래스에 추상 메서드로 선언되어 있으며, HttpServlet 클래스에서 구현되어 있다.

  • 서버가 종료되면, destory() 메서드가 실행된다.

    자원을 해제하는 작업 수행

참고


https://woojong92.tistory.com/entry/Servlet구조와-HttpServlet-클래스

https://kgvovc.tistory.com/26

https://mundol-colynn.tistory.com/148#toc4

댓글남기기