是否可以告诉标准 Java EE servlet 容器将文件解释和呈现为 JSP,即使它没有 .jsp 扩展名?
假设我的 WAR 根目录中有一个名为 foo.xyz 的文件。该文件包含一些 jstl 逻辑,正如您在 .jsp 文件中所期望的那样。如果我请求http://myserver/myapp/foo.xyz我将看到该文件中的文字代码呈现为文本。有没有办法配置 Web 应用程序,使其使用 JSP 解释器呈现文件而不更改文件扩展名?
请不要问我为什么要这样做。约束很复杂。
是否可以告诉标准 Java EE servlet 容器将文件解释和呈现为 JSP,即使它没有 .jsp 扩展名?
假设我的 WAR 根目录中有一个名为 foo.xyz 的文件。该文件包含一些 jstl 逻辑,正如您在 .jsp 文件中所期望的那样。如果我请求http://myserver/myapp/foo.xyz我将看到该文件中的文字代码呈现为文本。有没有办法配置 Web 应用程序,使其使用 JSP 解释器呈现文件而不更改文件扩展名?
请不要问我为什么要这样做。约束很复杂。
您可以在您的文件中添加以下配置,以使以beeeingweb.xml
结尾的文件作为 JSP 处理:.xyz
<jsp-config>
<jsp-property-group>
<url-pattern>*.xyz</url-pattern>
</jsp-property-group>
</jsp-config>
此解决方案适用于 Tomcat 和 Websphere。并且可能与任何 JEE 兼容的服务器容器一起使用。
将该 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 名称。验证<servlet>
servletcontainer 自己的条目web.xml
以确保。例如 Tomcat,这是/conf/web.xml
其安装文件夹中的文件。