대덕공부/Spring

ServletContext

02O2 2022. 6. 20. 20:47

 

https://codeofenow.tistory.com/32

 

[JSP] ServletContext(Application)

웹에서 사용하는 HTTP 프로토콜의 통신 방식은 클라이언트와 서버 간의 연결을 클라이언트로부터 요청이 있을 때마다 매번 새롭게 연결하는 방식이다. 요청이 있을 때마다 연결작업이 새롭게 이

codeofenow.tistory.com

ServletContext 

:현재서블릿이 운영 중인 어플리케이션에 대한 정보 그 어플리케이션이 실행되는 서버의 정보

:하나의 어플리케이션에 virtual machine이 하나씩 할당됨

: 서블릿이 운영되는 어플리케이션과 해당 어플리케이션이 운영되는 서버에 대한 정보를 가진 객체.
컨텍스트  하나당 하나의 싱글턴 객체가 운영됨

:웹 어플리케이션 전역에서 사용할 공동의 자원을 미리 바인딩하여 서블릿들이 이를 공유할 수 있도록 한다. 톰캣 컨테이너가 실행되면 웹 어플리케이션에 한 개씩 Context 객체를 생성한다.

:서블릿컨텍스트는 싱글톤으로 동작

 

하나하나가 어플리케이션이고  이 하나당 버츄얼머신이 하나씩 할당됨

 

해쉬코드가 같으면 동일객체 다르면 다른객체

싱글톤객체로인해 해쉬코드가 같음을 확인 할 수 있다.

서블릿컨텍스트는  서블릿전체에 대한 정보를가지고 있기때문에 여러개를 만들필요가 없다.

 

1. MIME 데이터 사용
		<%=application.getMimeType("test.jpg") %>
	2. 서버의 정보
		<%=application.getServerInfo() %>
		servlet spec version : <%=application.getMajorVersion() %>.<%=application.getMinorVersion() %>
	3. 로깅
		<%--
		request.getParts();//버전이 3 이상이어야 쓸수있음
		--%>
		<%
			application.log("로그메세지");
		%>
	4. (***) 웹리소스 확보 : /WebStudy02_MVN/src/main/webapp/resources/images/cat1.jpg
	(개발환경)D:\B_Util\eGovFrameDev-3.9.0-64bit\workspace\WebStudy02_MVN\src\main\webapp\resources\images\cat1.jpg 
	(실행환경)D:\B_Util\eGovFrameDev-3.9.0-64bit\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\WebStudy02_MVN\resources\images\cat1.jpg
		   D:\B_Util\eGovFrameDev-3.9.0-64bit\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
		   <%=application.getRealPath("/resources/images/cat1.jpg") %>
	<%
		String imgeUrl = "/resources/images/cat1.jpg";
	 	File imageFile = new File(application.getRealPath(imgeUrl));
	 	out.println("파일 크기 : "+imageFile.length());
	%>
</pre>
<h4>servlet Context hashcode : <%=application.hashCode() %></h4>
<a href="<%=request.getContextPath() %>/desc.do">/desc.do</a>

로그메세지확인, 클라이언트에게 확인하는것보다 서버관리자가 보는 용도 요즘은 안씀 log4j있어서

 

 

tmp0 -> 톰캣에 의해 결정되는 경로