可以渲染没有.jsp扩展名的JSP文件?(Can you render a file without

2019-06-24 07:00发布

是否可以告诉一个标准的Java EE servlet容器解释和渲染文件作为JSP,即使它不具有.jsp扩展?

说我有一个名为foo.xyz在我的WAR的根目录中的文件。 该文件包含了一些JSTL的逻辑,你希望在一个.jsp文件。 如果我请求HTTP://myserver/myapp/foo.xyz我会从渲染为文本文件中看到文字代码。 有没有配置Web应用程序,使得它使得使用JSP解释不改变文件扩展名的文件的方法吗?

请不要问我为什么会想这样做。 约束是复杂的。

Answer 1:

添加对URL模式,以你的webapp的一个JSP servlet映射web.xml

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

请注意,这个假设servletcontainer自己的JSP Servlet与的servlet名称注册jsp这是JSP的servlet的事实上的标准servlet名称。 验证<servlet> servletcontainer自己的内部进入web.xml是肯定的。 在例如Tomcat的情况下,这就是/conf/web.xml在其安装文件夹中的文件。



Answer 2:

您可以在添加以下配置web.xml ,以与结尾的文件.xyz beeing处理成JSP:

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

该解决方案正在使用Tomcat和Websphere。 并可能与任何JEE兼容的服务器容器。



文章来源: Can you render a file without a .jsp extension as a JSP?