是否可以告诉标准Java EE servlet容器解释并将文件呈现为JSP,即使它没有.jsp扩展名?
假设我在WAR的根目录中有一个名为foo.xyz的文件。该文件包含一些jstl逻辑,正如您在.jsp文件中所期望的那样。如果我请求http://myserver/myapp/foo.xyz,我将看到该文件中的文字代码呈现为文本。有没有办法配置Web应用程序,以便使用JSP解释器呈现文件而不更改文件扩展名?
请不要问我为什么要这样做。约束很复杂。
答案 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
文件。