쌓고 쌓다

서블릿 본문

프로그래밍/JSP & Servlet

서블릿

승민아 2023. 7. 19. 19:07

서블릿

자바를 사용하여 웹 페이지를 동적으로 생성해주는 프로그램.

 

웹 애플리케이션 서버의 요청 응답 구조 출처: 인프런-김영한

HTTP 요청시

WAS(웹 애플리케이션 서버)는 Request, Response 객체를 새로 만들어서 서블릿 객체(helloServlet)를 호출한다.

개발자는 HTTP 요청 응답 정보를 Request, Response로 편하게 다룰 수 있다.

Response를 바탕으로 HTTP 응답 메시지를 만들어 웹 브라우저에 전달한다.

=> 서블릿 객체는 싱글톤으로 관리되므로 공유 변수 사용 주의하자.

 

 

서블릿 환경 설정

스프링 부트는 서블릿을 직접 등록하여 사용할 수 있도록

@ServletComponentScan을 지원한다.

@ServletComponentScan // 서블릿 자동 등록
@SpringBootApplication
public class ServletApplication {

    public static void main(String[] args) {
        SpringApplication.run(ServletApplication.class, args);
    }

}

 

서블릿 등록

@WebServlet(name="requestHeaderServlet", urlPatterns = "/request-header")
public class RequestHeaderServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       ...
    }
}

@WebServlet

  • name: 서블릿 이름
  • urlPatterns: URL 매핑 -> 해당 URL로 요청이 들어오면 service 메서드를 실행한다.

HttpServletRequest

서블릿이 HTTP 요청 메시지를 개발자가 편하게 사용할 수 있도록 파싱해준다. 그 결과를 HttpServletResponse 객체에 담아 제공한다.

 

HttpServletResponse

마찬가지로 HTTP 응답 메시지를 편리하게 사용할 수 있도록 도와주는 객체이다.

 

HTTP 요청 메시지 구조

  • START LINE
    • HTTP 메서드
    • URL
    • 쿼리 스트링 - name=lee&age=20
    • 스키마(http), 프로토콜(http/1.1)
  • 헤더
  • 바디

Request 구조

GET /test.html HTTP/1.1 start line
Host: google.com
Accept: text/html
Accept-Encoding: gzip
Connection: keep-alive
headers
  blankline
name=lee&age=1 body

 

Response 구조

HTTP/1.1 200 OK status line
Date: Sun, 2 June
Server: Apache
Content-Length: 1
Content-Type: text/html
headers
  blank line
<h1>hello</h1> body

 

'프로그래밍 > JSP & Servlet' 카테고리의 다른 글

서블릿, JSP로 MVC 패턴 만들기  (0) 2023.07.29
JSP 애플리케이션과 MVC 패턴  (0) 2023.07.25
서블릿 애플리케이션과 템플릿 엔진  (0) 2023.07.24
HTTP 응답 데이터  (0) 2023.07.22
HTTP 요청 데이터  (0) 2023.07.20
Comments