Spring
[스프링 MVC 1편] - 서블릿
study ticket
2023. 1. 2. 15:13
Hello 서블릿
더보기
참고
서블릿은 톰캣 같은 웹 애플리케이션 서버를 직접 설치하고,그 위에 서블릿 코드를 클래스 파일로 빌드해서 올린 다음, 톰캣 서버를 실행하면 된다. 하지만 이 과정은 매우 번거롭다. > 스프링 부트는 톰캣 서버를 내장하고 있으므로, 톰캣 서버 설치 없이 편리하게 서블릿 코드를 실행할 수 있다.
스프링 부트 서블릿 환경 구성
- @ServletComponentScan : 현재 폴더를 기준으로 하위의 모든 폴더를 뒤져 서블릿을 찾아 실행시켜줌!
- (ComponentScan이 Component(스프링빈)을 찾아 스프링 컨테이너에 등록하는것과 비슷)
@ServletComponentScan
@SpringBootApplication
public class ServletApplication {
public static void main(String[] args) {
SpringApplication.run(ServletApplication.class, args);
}
}
서블릿 등록하기
- 서블릿은 HttpServlet을 상속받는다. HttpServlet의 service메서드를 오버라이딩받아 서블릿이 실행되면 service의 메서드가 실행된다.
- 웹으로부터 요청을 받기위해 @WebServlet이라는 애노테이션을 추가하여 준다. 밑의 코드는 "/hello" 라는 url로 접속하면 실행되게된다.
- 서블릿은 http메시지를 받아 유용하게 사용하게 해주는 것이므로 request와 response가 출력된다.
@WebServlet(name = "helloServlet",urlPatterns = "/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("request = " + request);
System.out.println("response = " + response);
System.out.println("HelloServlet.service");
}
}
응답
request = org.apache.catalina.connector.RequestFacade@1edd7085
response = org.apache.catalina.connector.ResponseFacade@174bda69
HelloServlet.service
웹 애플리케이션 서버의 요청 응답 구조
웹브라우저에서 url을 통해 쿼리파라미터 , http body와 같은 형식으로 http메시지를 넘겨줌 -> 서블릿 컨테이너 실행 -> 요청(request)메시지를 통해 처리 -> 응답(response)메시지를 통해 웹브라우저에 http메시지를 넘겨줌
참고 강의
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard
728x90