您可以将没有.jsp扩展名的文件渲染为JSP吗?

时间:2012-05-08 23:00:39

标签: jsp java-ee servlets web.xml

是否可以告诉标准Java EE servlet容器解释并将文件呈现为JSP,即使它没有.jsp扩展名?

假设我在WAR的根目录中有一个名为foo.xyz的文件。该文件包含一些jstl逻辑,正如您在.jsp文件中所期望的那样。如果我请求http://myserver/myapp/foo.xyz,我将看到该文件中的文字代码呈现为文本。有没有办法配置Web应用程序,以便使用JSP解释器呈现文件而不更改文件扩展名?

请不要问我为什么要这样做。约束很复杂。

2 个答案:

答案 0 :(得分:10)

您可以在web.xml中添加以下配置,以将以.xyz为结尾的文件作为JSP处理:

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

此解决方案正在与Tomcat和Websphere一起使用。可能还有任何符合JEE标准的服务器容器。

答案 1 :(得分:5)

将该URL模式的JSP servlet映射添加到webapp的web.xml

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

请注意,这假设servletcontainer自己的JSP servlet使用servlet名称jsp注册,该名称是JSP servlet的事实上的标准servlet名称。验证servletcontainer自己的<servlet>内的web.xml条目是否确定。在例如Tomcat的情况下,这是其安装文件夹中的/conf/web.xml文件。