BackEnd/WEB

서블릿_국비_DAY54

Leo.K 2022. 5. 17. 15:10

라이프 사이클

  • 사용자로부터 요청이 들어온다.
  • Tomcat이 이를 인지한다.
  • 요청을 인식하면 컨테이너에 사용자가 요청한 url-mapping이 존재하는지 확인한다. 
  • 있으면 호출하고, 없으면 새로 만든다. 
  • 특정 서블릿에 대한 첫 요청시에는 컨테이너에 아직 로딩되지 않았다. 
    • [Tomcat이 진행] -> 서비스를 실행하는 객체를 만들어서 연결해준다.
    • 생성(new)
    • 초기화(init)
    • 컨테이너 적재
    • 별도의 스레드를 생성하여 할당한다. 
    • 이 스레드가 실질적으로 사용자의 요청에 응답한다.
    • 사용자가 요청한 방식에 따라 분기가 일어나는데 이는 선택사항이다. 

자바 (서블릿)파일은 실행되어 WEB-INF폴더 하위에 classes폴더에 생성된다. 

html파일은 webapp폴더 하위의 생성된다.

실행파일(war)만드는 법 (디렉토리 구조를 확인하기 위합)

  1. 다이나믹 웹 프로젝트는 그냥 컨트롤 c + 컨트롤 v하면 컨텍스트 패스명이 겹쳐서 차후에 관리하기 어렵다. 
  2. 프로젝트 우클릭 -> export -> war file -> 압축파일을 저장할 destination을 설정한다. -> export source file과 overwriting existing file을 체크한다.

 

서블릿을 실행 중에 원본 파일을 수정하고 저장하면, Tomcat이 이전의 파일은 old 버전으로 인식하고, 수정된 새로운 버전을 reload하면서 이전의 컨테이너에 적재되어 있던 서블릿을 destroy를 호출하여 컨테이너에서 삭제한다. 

새로고침을 하면 새로운 요청으로 인식하고 생성과 초기화부터 다시 진행한다.

Servers파일 -> context.xml -> reloadable : 서버를 켜놓은 상태에서 컨텐츠 내용이 수정되면 서버를 다시 구동하지 않아도 서버에서 자동으로 reload하여 이전의 적재되어 있던 내용을 삭제하고 새롭게 load한다. 단, 환경설정의 내용이 바뀌게 되면 반드시 서버를 재부팅해야 한다.

'BackEnd > WEB' 카테고리의 다른 글

EL_국비_DAY56  (0) 2022.05.19
JSP_국비_DAY55  (0) 2022.05.18
SERVLET_국비_DAY53  (0) 2022.05.16
UML_국비_DAY52  (0) 2022.05.13
JSP_국비_DAY48  (0) 2022.05.09