웹 서버와 서블릿 컨테이너

존스노우·2023년 9월 22일
0

  • 예전 톰캣방시고가의 차이

톰캣 설치

  • 10버전 맥북을 쓰니 알맞게 다운 받아서 설치.

  • 오랜만에 실행하니 신기

  • 별거 없다

  • 예외 상황이 생겼을 땐 /logs/catalina.out

  • 정말 오랜만에 보는 명령어들

  • 빌드 결과가 war로 만들기위한 플러그인.
  • jakarta -> 서블릿을 사용하는 라이브러리 코드

  • 셋팅하고 war를 만들자

  • 그 다음에 빌드폴더로

  • 압축을 풀면 이렇게 나오게 된다 . 정말 오랜만 반가워!

  • WEB-INF 폴더 하위는 자바 클래스와 라이브러리, 그리고 설정 정보가 들어가는 곳이다.
  • WEB-INF 를 제외한 나머지 영역은 HTML, CSS 같은 정적 리소스가 사용되는 영역이다.

배포 시작

  • 빌드 파일을 WebApps 밑에 넣자

  • 실행 결과

인텔리제이 유료버전 IDE 톰캣 설정

  • 무료는 제외

서블릿 컨테이너 초기화 - 1

  • 서블릿 컨테이너와 만들때 규칙 ! 서블릿 초기화는 저기서 일어나! 알려준다.

서블릿 컨테이너 초기화 - 2

  • 여기서는 프로그래밍 방식으로

애플리케이션 초기화

  • 서블릿 컨테이너는 조금 더 유연한 초기화 기능을 지원한다.
  • 여기서는 이것을 애플리케이션 초기화라 하겠다.
  • 이 부분을 이해하려면 실제 동작하는 코드를 봐야 한다.

  • 프로그래밍 방식으로 HelloServlet 을 서블릿 컨테이너의 직접 등록 한다.

  • 여기서 AppInit 왜 어떻게 실행되는거야?
  • 규칙이 있다.

  • 구현체가 c 쪽으로 딸려 온다.

스프링 컨테이너 등록

  • 스프링 관련 라이브러리가 없으니 추가해야됨!

  • 이런식으로 빈 등록!
  • 애플리케이션 초기화를 통해 서블릿컨테이너에 스프링 컨테이너를 생성하고 등록해보자

  • 인터페이스 구현하면 자동으로 실행 해줌!

  • 서블릿은? 어떻게 보면 와스환경에서 처음 고객의 요청을 받는게 서블릿
  • 디스패처 서블릿이면? 고객의 요청을 받으면 바로 컨트롤러 랑 연결해준다.

  • 디스패처서블릿이 스프링컨테이너를 참조하게 됨

  • 떴다!

스프링 MVC 서블릿 컨테이너 초기화 지원

  • 자동으로 호출이 ??

  • 이런식으로.. 흐음 ..

  • 유연하게 서블릿을 만들수 있지만 여기 강의에선 생략한다.

  • 스프링은 어떻게 저 인터페이스 만 선언했는데 자동으로 됬을까?

  • 이제껏 우리가 작성했떤 것?

  • 핸들타입! 구현체!

  • 어떻게 어떻게해서 객체 생성하고. 이니셜라이저.onStartup!
  • 우리가 만든 구현체 실행!

정리

profile
어제의 나보다 한걸음 더

0개의 댓글