JSP 클래스 로딩 설정
JSP 엔진의 클래스 로더 또는 웹 모듈의 클래스 로더가 JSP(JavaServer Pages) 클래스를 로드하도록 구성할 수 있습니다.
기본적으로, JSP 클래스는 JSP 엔진 클래스 로더의 고유 인스턴스에 의해 로드됩니다. JSP 엔진의 클래스 로더는 JSP 소스나 종속자 중 하나가 수정될 때 JSP 클래스를 런타임에 다시 로드할 수 있게 합니다. 따라서 필요할 경우, 로드된 다른 JSP 클래스에 영향을 미치지 않고 단일 JSP 클래스를 다시 로드할 수 있습니다.
- JSP 엔진 구성 매개변수 useFullPackageNames가 true로 설정되며, JSP 파일이 이 주제 마지막 부분에 있는 테이블의 <servlet-class> 시나리오를 통해 web.xml 파일에서 서블릿으로 구성됩니다.
- JSP 엔진 구성 매개변수 useFullPackageNames 및 disableJspRuntimeCompilation이 둘 다 true로 설정되었습니다. 이 경우, web.xml 파일에서 JSP 파일을 서블릿으로 구성할 필요가 없습니다.
JSP 파일을 서블릿으로 구성
web.xml 파일에서 JSP 파일을 서블릿으로 구성할 수 있습니다. 두 가지 방법으로 이를 수행할 수 있습니다. 이 방법은 이 섹션의 나중 테이블에 설명되어 있습니다.
- 다시 로드 성능 - JSP(JavaServer Pages) 파일의 런타임 다시 로드가 필요한 경우, JSP(JavaServer Pages) 파일에 대한 요청은 JSP 엔진에서 처리해야 합니다. 이 섹션의 나중 테이블에 있는 <servlet-class> 시나리오에서는 런타임 시 JSP 파일을 다시 로드할 수 없지만, <jsp-file> 시나리오에서는 이 파일을 다시 로드할 수 있습니다.
- 클래스 로더 수 줄이기 - 수정된 JSP 페이지를 런타임 시에 다시 로드하지 않아도 되고 클래스 로더 인스턴스 수를 줄이고 싶은 경우에는 다음 테이블에 있는 <servlet-class> 시나리오를 사용할 수 있습니다. 마찬가지로, JSP 파일을 서블릿으로 구성하지 않고도 섹션 1에 있는 시나리오 2를 사용할 수 있습니다.
시나리오 | 예제 | 런타임 다시 로드 가능 여부 | 다중 클래스 로더 사용 여부 | useFullPackageNames |
---|---|---|---|---|
<jsp-file> | <servlet> <servlet-name>jspOne</servlet-name> <jsp-file>jspOne.jsp</jsp-file> </servlet> |
예 | 예 | true 또는 false |
<servlet-class> | <servlet> <servlet-name>jspTwo</servlet-name> <servlet-class>_ibmjsp.jspTwo</servlet-class> </servlet> |
아니오 | 아니오 | true |
JSP 일괄처리 컴파일러 도구는 JSP(JavaServer Pages) 파일을 서블릿으로 구성하는 데 도움이 됩니다. useFullPackageNames가 true인 경우, JSP 일괄처리 컴파일러는 성공적으로 변환하고 컴파일한 각 JSP 파일에 대해 <servlet> 및 <servlet-mapping> 요소를 생성합니다. 이 요소는 generated_web.xml이라고 하는 web.xml 단편 파일에 기록되며 이 파일은 JSP 파일 일괄처리 컴파일러에서 처리하는 웹 모듈의 2진 WEB-INF 디렉토리(배치된 애플리케이션의 EAR 파일 안에 있음)에 있습니다. 이 요소 중 일부 또는 전부를 복사한 후 web.xml 파일에 붙여넣어 JSP(JavaServer Pages) 파일을 서블릿으로 구성할 수 있습니다.
구성 저장소 디렉토리의 예는 {WAS_ROOT}/profiles/profilename/config/cells/cellname/applications/enterpriseappname/deployments/deployedname/webmodulename입니다.
구성 저장소 디렉토리의 예는 profile_root/config/cells/cellName/applications/enterpriseAppName/deployments/deployedName/webModuleName입니다.
애플리케이션 2진 디렉토리의 예는 {WAS_ROOT}/profiles/profilename/installedApps/nodename/EnterpriseAppName/WebModuleName/입니다.
애플리케이션 2진 디렉토리의 예는 profile_root/installedApps/nodeName/EnterpriseAppName/WebModuleName/입니다.
JSP 일괄처리 컴파일러를 사전 배치된 애플리케이션에서 실행하면, web.xml 파일이 웹 모듈의 WEB-INF 디렉토리에 위치합니다.