是否可以告诉标准Java EE servlet容器将文件解释为JSP并将其呈现为JSP,即使它没有.jsp扩展名?
假设我在WAR的根目录中有一个名为foo.xyz的文件。该文件包含一些jstl逻辑,就像您在.jsp文件中所期望的那样。如果我请求http://myserver/myapp/foo.xyz,我将看到该文件中的文字代码呈现为文本。有没有一种方法可以配置Web应用程序,使其可以使用JSP解释器呈现文件而无需更改文件扩展名?
请不要问为什么我要这样做。约束很复杂。
在该URL模式上将JSP servlet映射添加到您的webapp的web.xml。
web.xml
<servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>*.xyz</url-pattern> </servlet-mapping>
请注意,这假设servlet容器自己的JSP servlet已注册,且其servlet名称jsp是JSP servlet的事实上的标准servlet名称。验证<servlet>servletcontainer自己内部的条目web.xml以确保。以Tomcat为例,这是/conf/web.xml其安装文件夹中的文件。
jsp
<servlet>
/conf/web.xml