2012-05-08 3 views
7

표준 Java EE 서블릿 컨테이너에 .jsp 확장자가없는 경우에도 파일을 JSP로 해석하고 렌더링하도록 말할 수 있습니까?.jsp 확장자가없는 파일을 JSP로 렌더링 할 수 있습니까?

내 워의 루트 디렉토리에 foo.xyz라는 파일이 있습니다. 이 파일에는 .jsp 파일에서 예상하는 것처럼 일부 jstl 논리가 들어 있습니다. http://myserver/myapp/foo.xyz을 요청하면 텍스트로 렌더링 된 해당 파일의 문자 코드를 보게됩니다. 파일 확장자를 변경하지 않고 JSP 인터프리터를 사용하여 파일을 렌더링하도록 웹 응용 프로그램을 구성하는 방법이 있습니까?

왜 내가 이것을하고 싶은지 묻지 마십시오. 제약 조건은 복잡합니다.

답변

5

해당 URL 패턴의 JSP 서블릿 매핑을 웹 응용 프로그램의 web.xml에 추가하십시오.

<servlet-mapping> 
    <servlet-name>jsp</servlet-name> 
    <url-pattern>*.xyz</url-pattern> 
</servlet-mapping> 

참고이 servletcontainer 자신의 JSP 서블릿은 JSP 서블릿의 사실상의 표준 서블릿 이름 jsp의 서블릿 이름으로 등록되어 있다고 가정. 서블릿 컨테이너 자체에 <servlet> 항목이 있는지 확인하려면 web.xml을 확인하십시오. 예를 들어 Tomcat의 경우 설치 폴더에있는 파일은 /conf/web.xml입니다.

+0

이 솔루션은 Tomcat에서 작동하지만 Websphere에서는 작동하지 않습니다. 나는 이것이 사실상 표준이 아닌 해킹이라고 생각한다. – LaurentG

+0

@LaurentG : 대답은 이미 다뤘습니다. Websphere 자체가 사용하는 것과 동일한 ''을 사용하십시오. – BalusC

+0

Tomcat으로 개발 중이며 Websphere에 배포하고 있으므로 제안한 가장 일반적인 솔루션이 더 좋다고 생각합니다 (두 web.xml을 관리하고 싶지 않습니다). 그러나 가장 일반적인 경우에는 솔루션이 너무 잘 작동합니다. – LaurentG

8

당신은 .xyz가 JSP로 처리에 beeing로 끝나는 파일을 확인하기 위해 web.xml에 다음과 같은 구성을 추가 할 수 있습니다 :이 솔루션은 톰캣과 웹 스피어와 협력

<jsp-config> 
    <jsp-property-group> 
     <url-pattern>*.xyz</url-pattern> 
    </jsp-property-group> 
</jsp-config> 

. JEE 호환 서버 컨테이너를 사용하면됩니다.

관련 문제