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

Mik*_*eck 10 jsp web.xml servlets java-ee

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

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

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

Lau*_*ntG 10

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

<jsp-config>
    <jsp-property-group>
        <url-pattern>*.xyz</url-pattern>
    </jsp-property-group>
</jsp-config>
Run Code Online (Sandbox Code Playgroud)

此解决方案正在与Tomcat和Websphere一起使用.并且可能与任何符合JEE的服务器容器.


Bal*_*usC 5

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

<servlet-mapping>
    <servlet-name>jsp</servlet-name>
    <url-pattern>*.xyz</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

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