小编典典

是否可以使用JSP / JSTL生成动态的CSS / JavaScript文件?

jsp

如果是这样,您该怎么做?

(jboss / tomact嵌入式/ jdk 1.5)

不是嵌入式js / css,而是实际文件…


阅读 374

收藏
2020-06-08

共1个答案

小编典典

您要做的是将* .css Servlet映射分配给JSPServlet。

在大多数容器中,您会看到这样的映射(这是来自Glassfish的,位于default-web.xml中):

  <servlet>
    <servlet-name>jsp</servlet-name>
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
    <init-param>
      <param-name>xpoweredBy</param-name>
      <param-value>true</param-value>
    </init-param>
    <load-on-startup>3</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>jsp</servlet-name>
    <url-pattern>*.jsp</url-pattern>
  </servlet-mapping>

在这里,它声明了JSP servlet,并将“ * .jsp”映射到它。因此,在这种情况下,JSP servlet引用名称就是“ jsp”。

因此,您需要添加:

<servlet-mapping>
  <servlet-name>jsp</servlet-name>
  <url-pattern>*.css</url-pattern>
</servlet-mapping>

当您这样做时,“突然”所有CSS文件实际上就是JSP,因此您可以随心所欲地对其进行处理。

详细信息是我不知道’jsp’是否对所有容器都相同,因此您的web.xml可能不可移植。

但这就是您要做的要旨。如果您不希望所有CSS都成为JSP,则可以将文件放在它们自己的目录中,然后将其映射到JSP
servlet。然后,您输入的任何内容都会有一个JSP(css,js等)

2020-06-08