스프링/3. 스프링 MVC

7. Hello Servlet

sdafdq 2023. 8. 3. 18:18

@ServletComponentScan

이거 해두면, 그 패키지와 그 패키지 하위의 서블릿을 모두 찾아서 컨테이너에 등록해 줌.

 

main 에다가 해두더라.

 

Servlet은 HttpServlet이라는 걸 상속 받아야 한다.

 

service 오버라이드 하는데, 

HttpServletRequest

이거 인자로 있는거 오버라이드 해야 함

 

처음에 저거 하면,

super.service(req, resp);

이게 자동으로 나오는데, 클라이언트의 요청에 따라 처리하는 부모의 HttpServlet의 service 호출

클라이언트의 요청에 따라, 저거는 doGet이나 doPost 등을 호출하는데 override 해서 쓰는거임.

 

 

 

@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);

        System.out.println(request.getParameter("username"));

        response.setContentType("text/html");
        response.setCharacterEncoding("utf-8");
        response.getWriter().write(
                "<!doctype html>\n" +
                        "<html lang=\"ko\">\n" +
                        "<head>\n" +
                        "\t<meta charset=\"utf-8\">\n" +
                        "\t\t\t<title>글쓰기</title></head> <body><h1>Hello</h1></body>"
        );
    }
}

ContentLength는 자동으로 만들어 줌.

text/plain 그냥 text만 보낼 때

 

 

http 요청 메시지를 다 보고 싶을 때, 쿼리 포함

 

application.property에

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

 

근데 이건 개발단계에서만.

 

 

요청오면, 요청 기반으로 request, 그리고 response 객체를 생성해주고, 요청된 서블릿 컨테이너에서 찾아서, 우리가 response에 작업해 주면 됨.

'스프링 > 3. 스프링 MVC' 카테고리의 다른 글

9. http 요청 데이터  (0) 2023.08.04
8. HttpServletRequest, Header  (0) 2023.08.03
5. 자바 웹 기술 발전 역사  (0) 2023.08.03
4. 서버의 클라이언트에게 제공 방식  (0) 2023.08.02
3. 멀티쓰레드  (0) 2023.08.01