[Spring] Servlet

골드곽
|2022. 7. 20. 00:22
반응형

@ServletComponentScan

스프링부트에서 서블릿을 사용하려면 사용한다.

Annotation을 사용한 패키지부터 하위 패키지들을 스캐닝하여 서블릿을 사용할 수 있도록 해준다.

 

아래는 서블릿코드이다.

@WebServlet(name = "helloServlet", urlPatterns = "/hello")
public class HelloServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) 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);

        response.setContentType("text/plain");
        response.setCharacterEncoding("utf-8");
        response.getWriter().write("hello " + username);
    }
}

첫번째 줄부터 순서대로 설명을 하겠다.

 

@WebServlet이란

해당 Annotation의 속성 값을 통해 Servlet과 매핑될 url을 지정하는 것이다.

 

1. name 

  • 서블릿 이름 설정
  • 기본값은 빈 문자열("")

2. urlPatterns

  • 서블릿 url 설정
  • String 배열을 지정 ( 한 개의 url이 아닌 여러 개도 설정 가능 )
    • @WebServlet(urlPatterns="/hello")
    • @WebServlet(urlPatterns={"/hello", "/hi", "/welcome"})

url에 "localhost:8080/hello"로 접속을 하면 해당 service안에 구문이 실행이 된다.

 

service란

클라이언트가 서블릿 요청시 request를 가지고 들어오는 method

 

response.setContentType("text/plain")

브라우저에게 보내는 타입이 text/plain으로 보여달라고 하는것

 

response.setCharacterEncoding("utf-8")

브라우저에게 인코딩을 utf-8 문자코드를 사용하라고 하는것

 

클라이언트가 보낸 요청을 서버에 출력하여 보는 방법이 있다.

resources/application.properties

logging.level.org.apache.coyote.http11=debug

 

프로젝트의 welcomPage는 main/webapp/index.html로 설정 가능하다.

localhost:8080/index.html을 해도 되고, localhost:8080만 하더라도 index.html이 실행된다. 

반응형