본문 바로가기
Spring(JAVA Framework)/Spring MVC

Servlet 환경 세팅과 등록

by 걸어가는 신사 2021. 8. 28.

1. 스프링 부트 서블릿 환경 구성

@ServletComponentScan
스프링 부트는 서블릿을 직접 등록해서 사용할 수 있도록 @ServletComponentScan을 지원한다. 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;

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

 

 

2. 서블릿 등록하기

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet(name = "helloServlet", urlPatterns = "/hello")
public class HelloServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        System.out.println("HelloServlet.service");
        System.out.println("request = " + request);
        System.out.println("response = " + response);

        String username = request.getParameter("username");
        System.out.println("username = " + username);

        response.setContentType("text/plain");
        response.setCharacterEncoding("utf-8");
        response.getWriter().write("hello " + username);
    }
}
  • @WebServlet 서블릿 어노테이션
    • name : 서블릿 이름
    • urlPatterns : URL 매핑
  • HTTP 요청을 통해 매핑된 URL이 호출되면 서블릿 컨테이너는 다음 메서드를 실행한다.
    • http://localhost:8080/hello?username=world 호출 시 urlPatterns : "/hello"인 서블릿 동작한다.
    • protected void service(HttpServletRequest request, HttpServletResponse response)

 

3. 서블릿 컨테이너 동작 방식

(1) 내장 톰캣 서버 생성

 

 

 


본 글은 김영한 님의 "스프링 핵심 원리"(인프런) 유료 강의를 들으며 요약, 정리하고 일부 정보를 추가 작성한 것입니다.

반응형

'Spring(JAVA Framework) > Spring MVC' 카테고리의 다른 글

SpringMVC 구조  (0) 2021.09.15
HTTP Response 데이터  (0) 2021.08.29
HTTP Request 데이터  (0) 2021.08.29
HTTP API  (0) 2021.08.28
Servlet (서블릿)  (0) 2021.08.28

댓글