서블릿 실행, 접근(feat : inblog)

서블릿 실행, 접근
Aug 17, 2023
서블릿 실행, 접근(feat : inblog)
💡
서블릿도 IoC가 적용되서 프로그램의 실행 흐름을 개발자가 제어하지 않는다. 따라서 서블릿이 어떤 순서로 실행되는지 알아야 한다.

서블릿 생명주기(Life Cycle) ;서블릿 실행순서

notion image
  • 클라이언트는 서버로 서비스 요청
  • 서버는 URI를 분석해서 클라이언트가 요청한 서비스가 서블릿이라면
  • 요청처리를 서블릿 컨테이너에게 넘김
  • 서블릿 컨테이너는 WEB-INF/classes or WEB-INF/lib에서 찾아 실행을 준비
  • 서블릿 컨테이너는 최초 실행인지 아닌지를 체크
    • 최초 실행 시
    • 메모리에 로딩 → 객체 생성 → 서블릿 객체의 init()호출 → service() 호출
    • 서버가 멈추기 전까지는 계속 살아있는 객체가 된다 , 다음에 다시 이 서블릿을 요청시 바로 service() 가 호출
  • service() 동작이 모두 끝나면 요청결과를 컨테이너에게 전달함
 

서블릿의 실행

notion image
WEB-INF 안에는 웹 애플리케이션 설정과 관련된 내용인 web.xml 과 그 외 웹 애플리케이션과 관련된 중요한 파일이 들어있는 디렉토리이므로 외부에서 접근할 수 없다
 
💡
서블릿은 WEB-INF 안에 위치하기 때문에 클라이언트 WEB-INF 로 접근해야 하고 WEB-INF 안에는 중요한 파일이 들어있으므로 직접 접근할 수 없다 이 모순된 상황을 어떻게 해결할까?

접근 설정

  • web.xml 직접설정
  • Annotation 사용한 설정
 

web.xml 을 이용한 설정

notion image
  • web-app 태그 안에 적는다
  • <servlet> 태그로 서블릿을 서버가 인식할 수 있게 등록한다
  • <servlet-mapping> 태그로 클라이언트가 서블릿에 접근할 수 있도록 설정한다

Annotation을 이용한 설정

notion image
  • @WebServlet(”경로”) 사용하여 서블릿의 경로를 설정할 수 있다.
  • WebServlet에는 여러가지 속성들이 존재함
Share article

백엔드블로그-dohyeong