서블릿은 톰캣 같은 웹 애플리케이션 서버를 직접 설치하고, 그 위에 서블릿 코드를 클래스 파일로 빌드해서 올린 다음, 톰캣 서버를 실행하면 되지만,
이 과정은 매우 번거롭다.
근데 스프링 부트는 톰캣 서버를 내장하고 있으므로 편리하게 사용 가능
Mac 기준에서 Ctrl+O를 누르면 위와 같이 오버라이딩 할 메서드를 선택할 수 있다. 그중에 자물쇠가 걸린 service 선택하고 완성을 한다.
아파치의 커넥터에 요청과 응답이 둘다 들어있는 것을 확인할 수 있다.
request
의 경우 파라미터라는 메서드를 통해 url의 쿼리 정보를 가져올 수 있다.
response
를 통해 가져온 쿼리를 다시 화면에 표시할 수 있다.
logging.level.org.apache.coyote.http11=debug
위 옵션을 application.properties
에 추가하고 실행하면
이런식으로 전체 내용을 보면서 진행이 어떻게 되는지 확인할 수 있다.
단, 운영서버에서 넣으면 느려질 수 있으니 개발 단계에서만 사용하는 것이 좋다.
스프링 부트가 실행되면 내장 톰켓 서버를 띄워준다. 그러면 내장 톰캣 서버가 서블릿 컨테이너가 생성되고 그 안에 우리가 생성한 helloServlet을 생성해준다.
HTTP 요청으로 왼쪽 위 그림과 같이 보내면 웹 애플리케이션은 아래 그림과 같이 작동한다.
처음에 HTTP 요청을 기반으로 request와 response를 생성하고 이를 싱글톤인 helloServlet을 호출하여 정해진 로직을 실행한다. 그 후에 reponse에 Content-Type, charset, 등등 응답으로 보내면 웹 브라우저는 hello world를 볼 수 있게 된다.
이 두 html파일을 넣게 되면
기본 localhost:8080
또는 localhost:8080/index.html
로 이동하면 index.html 파일이 보여지게 된다.
그리고 위 버튼을 누르면 basic.html이 보여지도록 만들어졌다.(프론트 부분이라 그냥 복붙)