스프링,스프링부트

Servlet의 이해

JUN0126 2021. 12. 5. 11:10

WebServer와의 Http 통신을 위해서는 Servlet의 역할이 필요하다.

 

@ServletComponentScan

 - 스프링부트에서는 서블릿을 직접 등록하여 사용할 수 있도록 @ServletComponentSacn 어노테이션을 지원한다.

   해당 어노테이션을 main 스레드에 등록하여 웹 서버를 올릴 시에 개발자가 Servlet을 등록할 수 있으며 

   @SpringBootApplication 어노테이션을 통해 등록한 서블릿을 사용할 수 있다.

 

@HttpServletRequest

 - Servlet은 Http 요청 메세지를 편리하게 사용할 수 있도록 개발자 대신에 Http 요청 메시지를 파싱해준 후 그 결과 값을 HttpServletRequest 객체에 담아서 제공한다.  

 - 요청에 대한 여러 정보들을 설정하여 WAS에 전달한 후 WAS에서 Web 브라우저로 응답을 반환한다.

 

@HttpServletResponse

 - @HttpServletRequest은 요청에 대한것이며 @HttpServletResponse는 응답에 대한 객체 반환 어노테이션이다

 - 응답에 대한 여러 정보들을 설정하여 

@WebServlet

  - Web에서 사용할 서블릿을 등록하여 설정한 urlPattenrs을 통하여 http통신을 할 수 있다.

  @WebServlet(name = "servlet 이름" , urlPatterns = "URL 매핑")
  public class ServletTest extends HttpServlet
     @Override
     protected void service(HttpServletRequest request, HttpServletResponse respose)
                                                                                       Throw ServletExcetpion, IOException {
        ... 
     }
  } 

 사용법은 위와 같으며 WebServlet의 name을 통하여 해당 서블릿의 이름을 지정할 수 있으며 urlPatterns을 통하여

 해당 URL로 요청이 들어올 경우 서블릿 컨테이너가 service 메소드를 실행하여 요청에 대한 request 값과 response값을 설정하여 값을 받은 요청에 대한 응답 값을 Http 통신을 이용하여 다시 클라이언트에게 보낼 수 있다.

 

★ 결론

  • 서블릿을 통하여 매핑된 URL을 통하여 HTTP 통신을 할 수 있으며 요청에 대한 값과 해당 요청에 대한 응답값을 설정하여 데이터를 주고 받을 수 있다.

  • 웹 브라우저 -> URL 매핑 -> 설정 전 Request, Response 전달 -> 서블릿 컨테이너 에서 매핑된 URL 클래스를 찾아     request,response 객체 반환, -> WAS Response 반환 -> 웹 브라우저 값 전달 

   

'스프링,스프링부트' 카테고리의 다른 글

@Transactional  (0) 2023.08.26
람다식 (Lambda)  (0) 2021.07.10
DAO, DTO, VO, Entity  (0) 2021.06.30
SpringBoot를 이용한 Rest API -1  (0) 2020.07.02
6/7 스프링가이드 정리  (0) 2020.06.07