jsp 학습을 위해 패키징을 jar 대신 war 방식을 사용한다.
서블릿 자동등록을 위해 @ServletComponentScan
사용한다.
@ServletComponentScan
@SpringBootApplication
public class ServletApplication {
public static void main(String[] args) {
SpringApplication.run(ServletApplication.class, args);
}
}
@WebServlet(name = "helloServlet", urlPatterns = "/hello")
public class HelloServlet extends HttpServlet {
@Override
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
System.out.println("HelloServlet.service");
}
}
요청이 들어오면 서블릿 컨테이너(톰캣)이 request, response 객체를 만들고 쓰레드를 할당해 해당 서블릿을 호출한다.
request = org.apache.catalina.connector.RequestFacade@f9f4b4b
response = org.apache.catalina.connector.ResponseFacade@3e213fd5
HttpServletRequest는 표준 Request 인터페이스이고 rg.apache.catalina.connector.RequestFacade
는 톰캣이 구현한 구현체이다.
요청 로깅을 위한 설정
application.properties 파일 내에 logging.level.org.apache.coyote.http11=debug
를 입력
웹 브라우저의 Request 정보가 로그에 찍히게 된다.