サーブレットベース


Spring Bootは@サーブレットComponentScanをサポートしており、サーブレットを直接登録して使用することができます.
package hello.servlet;

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

}
@WebServicelet:テンプレートの説明
1.HTTP要求によりマッピングされたURLを呼び出す場合、britコンテナは以下の方法を実行する.
protected void service(HttpServletRequest request, HttpServletResponse response)
package hello.servlet.basic;

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
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 {

    // control + o = service 중에 자물쇠 있는 것을 선택
    // -> 서블릿이 호출되면 이 서비스 메서드가 호출된다.
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //단축키 : soutm
        System.out.println("HelloServlet.service");
        //단축키 : soutv
        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);
    }
}
HTTPリクエストメッセージログの確認
application.properties -> logging.level.org.apache.coyote.http 11=デバッグの作成
Webアプリケーションサーバのリクエスト応答構造