是否可以使用JSP/JSTL生成动态css/javascript文件?

是否可以使用JSP/JSTL生成动态css/javascript文件?,java,javascript,css,jsp,Java,Javascript,Css,Jsp,如果是的话,你怎么做 (jboss/tomact embedded/jdk 1.5) 不是嵌入的js/css,而是一个实际的文件…当然,JSP可以输出任何需要的文本,即(X)HTML或css或JavaScript代码。我经常在ERP定制中这样做,在每个页面的末尾插入一个javascript脚本,并通过它加载的上下文来操作页面上必要的数据字段,而无需触摸底层应用程序。当然可以。您只需要设置适当的内容类型 <%@page contentType="text/javascript" %>

如果是的话,你怎么做

(jboss/tomact embedded/jdk 1.5)


不是嵌入的js/css,而是一个实际的文件…

当然,JSP可以输出任何需要的文本,即(X)HTML或css或JavaScript代码。我经常在ERP定制中这样做,在每个页面的末尾插入一个javascript脚本,并通过它加载的上下文来操作页面上必要的数据字段,而无需触摸底层应用程序。

当然可以。您只需要设置适当的内容类型

<%@page contentType="text/javascript" %>



请注意,一些WebBrowser可能对实际请求URL中使用的文件扩展名很挑剔。我从未尝试过它,因为我通常会使用
Servlet
来实现这些目的,但如果MSIE不吃它,我也不会感到惊讶。

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

在大多数容器中,您会看到这样的映射(这来自Glassfish,在它的默认web.xml中):


jsp
org.apache.jasper.servlet.JspServlet
xpoweredBy
真的
3.
jsp
*.jsp
在这里,它声明了JSPServlet,并将“*.JSP”映射到它。因此,在本例中,jspservlet引用名称是,简单地说是“JSP”

因此,您需要添加:

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

jsp
*.css
当您这样做时,“突然”所有CSS文件实际上都是JSP,因此您可以随意使用它们

细节是,我不知道“jsp”是否对所有容器都是相同的,因此您的web.xml可能不可移植


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

,您可能需要添加以下内容:

<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>

jsp
org.apache.jasper.servlet.JspServlet
xpoweredBy
真的
3.
然后


jsp
*myext先生
*.jsp
如果没有,您可能会遇到
“java.lang.RuntimeException:此处没有默认名称的web组件。”错误

但我希望它像常规javascript或css文件一样工作(例如发送标题等)。请回答此问题。像这样的东西。[1]:第二眼这就是我要找的
<servlet-mapping>
  <servlet-name>jsp</servlet-name>
  <url-pattern>*.css</url-pattern>
</servlet-mapping>
<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-mapping>
    <servlet-name>jsp</servlet-name>
    <url-pattern>*.myext</url-pattern>
    <url-pattern>*.jsp</url-pattern>
</servlet-mapping>