当前位置: 首页 > 面试题库 >

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

郭炳
2023-03-14
问题内容

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

(jboss / tomact嵌入式/ jdk 1.5)

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


问题答案:

您要做的是将* .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等)



 类似资料:
  • 我有一个JS项目,它使用aws服务作为后端(Cognito、AppSync、S3等)。 我使用AWS Amplify访问这些服务,但不使用Amplify CLI;所有aws服务都是手动配置的。 关于AppSync,我有一个小脚本,它读取模式(从APPESNC控制台手动下载),然后生成TypeScript操作和操作类型文件(使用放大器-图形ql-文档-生成器和放大器-图形ql-类型-生成器)。 有没

  • 我想实现一个有五个可选变量的搜索函数,并且在每个组合中,所以一个开关/案例不是一个可能的方法。所以我不能使用构建在Spring启动函数,因为它们不是动态的(如果我错了,请纠正我)。我知道crudrepository中有@查询注释,但是没有办法用可选参数编写查询?我试图用jpa编写我自己的数据库访问,没有Spring启动CrudRepository的帮助。我在手册中读到这应该可以工作: 但问题是,我

  • 我有一个JSON文件。我正在寻找任何有助于根据该JSON文件生成AVRO模式的程序/工具。我不关心数据类型。只要AVRO模式结构是基于JSON生成的,它都可以是字符串。 目标是,我试图只使用json文件创建一个avro文件。为此,我需要avro模式。 所以,如果我有一个avro模式,使用avro工具,我将能够通过提供avro模式和JSON文件作为输入来生成avro文件。 任何进一步的帮助/建议将不

  • 问题内容: 我必须基于将动态提供的各种参数来生成报告。在某些情况下,参数可以为null。例如,我必须从具有 ID* , 姓名 , 年龄 , 性别 和 maritalStatus 作为字段的表 Person中 ,生成有关 30岁已婚男性的 报告。在另一些时候,可能需要 不考虑年龄 就 结婚的女性 。如果我在这两种情况下都使用相同的碧玉,则年龄限制在第二种情况下将为null。有什么办法可以解决这种情况

  • 这不是一个浏览器。 我打算为我的机器人做一个“黑名单”数组,这将阻止用户运行命令。然而,我似乎只能在实际的bot文件上这样做,因为我还没有找到一种方法来做一个外部方法。 这就是我正在使用的:

  • 问题内容: 我正在建立一个新的由AJAX驱动的网站,其中包含不同的部分。每个部分都需要一组新的Javascript函数才能运行。我宁愿不要一开始就加载每个脚本,因为可能会有很多脚本。 有没有一种方法可以使用AJAX加载新脚本并删除旧脚本(以确保类似的变量名或函数签名不存在兼容性问题)。 谢谢 编辑 -jQuery很好,它不必是老式的Javascript 问题答案: 三件事: 1)是,您可以加载新脚