ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Servlet 기초
    백엔드/SERVLET & JSP 2024. 8. 27. 14:39

     

    Servlet ?

    • Servlet은 웹서버의 요청 메서드에 따라서 응답을 만들기 위해서 사용하는 기술
    • Servlet을 관리하는 컨테이너가 웹서버의 요청을 받고, 요청에 따른 응답을 동적으로 생성하여 주는 역할
    • Servlet은 클래스파일로서 사용되고, Tomcat과 같이 사용된다 ( 따라서, Tomcat 서버 구성이  필요 )
      • Spring boot의 경우 내장 Tomcat이 있어서 사용하기에 수월하다.

     

    Servlet의 특징

    •  Servlet은 어노테이션을 이용하여 지정할 수 있다 (@WebServlet)
      • @WebServlet의 경우, 필수 입력값으로 "URLPattern='' "을 지정해줘야한다
    • 웹 컨테이너의 Client Request 처리 순서
      • Servlet Load -> Servlet instance -> Servlet init() -> Client Request
      • Servlet은 최초의 요청에서만 init을 사용하여 초기화하고, 이후 같은 객체를 재사용하게 된다.
      • 직접적으로 초기화를 진행해주기 위해서는 init()을 Override을 해야한다
    • Servlet의 파라미터 (Request, Response)
      • Request의 경우 Http 프로토콜에서 요청해온 Http Header 및 Body 내용을 파싱하게 된다.
      • Response의 경우 처리된 데이터를 Response Header와 Response Body를 HTTP 메서드에 맞게 전달하게 된다.
    • Servlet Service()
      • Service()의 경우 HttpServlet의 멤버 함수이다 ( HttpServlet을 상속받아야한다. ) 
      • Service의 메서드 경우, Servlet이 해당 Url에 맞는 요청이 들어왔을 때 요청을 처리하는 로직이 들어가는 부분이다.
      • Service() @Override를 통해서 해당 로직을 구현할 수 있다.
      • Servlet의 파라미터를 통해서 Request 처리 / Response 처리를 구현한다

     

     

     

    Spring boot에서의 Servlet 적용

    1. @SpringBootApplication에 @ServletComponentScan을 적용시켜야한다 ( 그래야 Spring이 Servlet을 직접 등록이 가능케 해준다)
    2. HttpServlet을 상속받은 클래스를 이용해서 해당 URL에 맞는 로직을 구현한다
    @ServletcomponentScan
    @SpringBootApplication
    public class Application{
        public static void main(String[] args){
            SpringApplication.run(Application.class,args);
        }
    }
    
    
    
    @WebServlet(urlPatterns = "/main")
    public class TestServlet extends HttpServlet{
    
        @Override
        protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IoException{
            
            //요청 처리 로직 및 응답 생성
            response.getWriter().write("ok"); // 간단한 Response "Ok" 메시지만 보내기
        }
    }

     

    '백엔드 > SERVLET & JSP' 카테고리의 다른 글

    순수 JSP 예제  (1) 2024.08.28
    JSP 이론 및 기초 문법  (1) 2024.08.28
    Servlet 예제 ( 회원 저장 / 조회 )  (0) 2024.08.27
    Servlet 응답 처리  (1) 2024.08.27
    Servlet 요청 데이터 처리  (0) 2024.08.27
Designed by Tistory.