inblog logo
|
백엔드블로그-dohyeong
    Servlet

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

    서블릿 실행, 접근
    Aug 17, 2023
    서블릿 실행, 접근(feat : inblog)
    Contents
    서블릿 생명주기(Life Cycle) ;서블릿 실행순서 서블릿의 실행접근 설정
    💡
    서블릿도 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

    RSS·Powered by Inblog