如果是这样,你怎么做?
(jboss / tomcat embedded / jdk 1.5)
不是嵌入式js / css而是实际文件...
答案 0 :(得分:11)
当然可以。您需要做的只是设置适当的内容类型。
<%@page contentType="text/javascript" %>
或
<%@page contentType="text/css" %>
注意某些 webbrowsers可能对实际请求URL中使用的文件扩展名很挑剔的事实。我从来没有尝试过,因为我通常会使用Servlet
来达到这些目的,但如果特别是MSIE不会吃那个,我也不会感到惊讶。
答案 1 :(得分:5)
您要做的是将* .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等)
答案 2 :(得分:2)
当然,JSP可以输出您需要的任何必要文本(X)HTML或CSS或JavaScript代码。我经常为ERP自定义做这件事,在每个页面的末尾注入一个javascript脚本,并通过上下文加载它可以在页面上操作必要的数据字段,而无需触及底层应用程序。
答案 3 :(得分:1)
在glassfish 3.1上,您可能需要添加以下内容:
<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>
您的web.xml,如果没有,您可能会遇到 “java.lang.RuntimeException:此处没有默认名称的Web组件。”错误