Chr*_*ehl 4 java jsp glassfish
我正在开发一个部署在最新Glassfish服务器上的Web应用程序.
为了使应用程序与不同的上下文根(例如"/ apps/myapp /")兼容,我需要动态生成其中的CSS文件.
问题是这些页面不像JSP文件那样处理,所以我不能使用<%= contextRoot %>.我知道我可以使用带有Content-Type标头的JSP文件来模仿CSS文件,但我希望在它上面有一个CSS扩展.
是否可以让Glassfish将非JSP文件视为JSP文件?
这很简单,我以前做过,效果很好.
只需获取要映射的扩展,并将其映射到JSP servlet.
JSP由servlet处理,就像其他任何东西一样.他们没什么特别的.
因此,对于Glassfish,这个servlet恰好被命名为"jsp".我不知道这是否是可移植的(即名称),但它可能在Glassfish和Tomcat中运行,并且可能在任何使用Jasper JSP编译器的地方运行.
在Glassfish中,它在$ glassfish_domain_dir/config/default-web.xml中定义.
因此,将其添加到您的web.xml
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
</web-app>
Run Code Online (Sandbox Code Playgroud)
如果没有标记,或者你自己添加标记的自定义CSS文件,这对于直接的CSS文件非常有用.