servlet 질문입니다..
마중물
이미 만들어진 서블릿을 서블릿컨테이너를 통해서 서버가 실행중인 상태에서
servlet 파일을 수정하면 서버를 다시 시작해야 한다고 봤는데요..
그렇다면 servlet은 서블릿 컨테이너를 가진 웹서버는
서버가 처음 시작되는 순간에 servlet들을 이미 다 init()한 상태이기 때문인가요?
아니면 다른 이유가 있을까요...?
-
잠팅이
기본은 servlet을 컴파일해서 만들어진 class를 참조하기 때문에 java 파일을 변경해도 reload가 되지 않죠. 리로드 가능하게 하는건 위에 분들이 잘 설명해주셨구요.
-
즐겨찾기
와아 굉장하신 답변들.. 너무 너무 감사해요 님들아..ㅡ,ㅜ
-
펴라
어떤 서블릿컨테이너를 사용하는지 모르겠는데요. 보통 톰캣 같은 경우에 자동리로드 옵션을 주면 알아서 서블릿의 변경사항및 서블릿에서 호출한 클래스까지도 체크해서 리로드해줍니다. 물론 운영중인 서버에서는 자동리로드는 부하를 주기때문에 끄는게 좋겠죠. OC4J는 자동으로 안되는것 같던데^^
-
바라
서블릿을 수정한다고 해서 서버를 반드시 재구동할 필요는 없습니다.
위 거퍼님의 말씀처럼 Web Application context 설정을 통해 수정된 서블릿의 적용이 실시간으로 이뤄지도록 할수 있습니다.
그리고 모든 서블릿이 서버 구동시 모두 init되는 것은 아닙니다. 보통 설정파일에서 지정한 것만 init됩니다.
예를 들어 Servlet mapping(in web.xml)이 적용된 서블릿은 서버 구동 시 init() 되지만 아무런 설정이 없는 -
빛글
html,jsp와 반대개념이라 생각하시면 될거같구여, 수정 즉시 반영되게 하려면
server.xml파일에서 자동 리로드 하게 해주거나
http://localhost:8080/admin/html(톰캣어드민페이지) 이었나.. 가물가물... 설치시 지정한 아이디로 들어가서
리로드 시켜주시면 됩니다.