首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何防止在嵌入式 Jetty 实例中缓存静态文件?

防止在嵌入式 Jetty 实例中缓存静态文件可以通过以下几个步骤:

  1. 在 Jetty 中配置静态文件的路径:

在 Jetty 中,可以通过配置 web.xml 文件来指定静态文件的路径。例如:

代码语言:xml
复制
<web-app>
 <context-param>
   <param-name>org.eclipse.jetty.servlet.Default.dirAllowed</param-name>
   <param-value>false</param-value>
  </context-param>
 <servlet>
   <servlet-name>default</servlet-name>
   <servlet-class>org.eclipse.jetty.servlet.DefaultServlet</servlet-class>
    <init-param>
     <param-name>resourceBase</param-name>
     <param-value>/path/to/your/static/files</param-value>
    </init-param>
    <init-param>
     <param-name>cacheControl</param-name>
     <param-value>no-cache, no-store, must-revalidate</param-value>
    </init-param>
  </servlet>
 <servlet-mapping>
   <servlet-name>default</servlet-name>
    <url-pattern>/static/*</url-pattern>
  </servlet-mapping>
</web-app>

在上面的配置中,/path/to/your/static/files 是静态文件的路径,/static/* 是 URL 路径,可以根据实际情况进行修改。

  1. 禁用 Jetty 的缓存:

在上面的配置中,我们已经通过 cacheControl 参数禁用了 Jetty 的缓存。这个参数可以设置 HTTP 响应头中的 Cache-Control 字段,告诉浏览器不要缓存静态文件。

  1. 使用 ETag 和 Last-Modified 标头:

除了禁用缓存之外,还可以使用 ETag 和 Last-Modified 标头来控制缓存。ETag 是一个唯一标识符,用于标识文件的内容是否发生变化。Last-Modified 标头表示文件的最后修改时间。通过这两个标头,浏览器可以更有效地缓存文件,并在文件发生变化时重新请求文件。

在 Jetty 中,可以通过配置 web.xml 文件来启用 ETag 和 Last-Modified 标头。例如:

代码语言:xml
复制
<web-app>
 <servlet>
   <servlet-name>default</servlet-name>
   <servlet-class>org.eclipse.jetty.servlet.DefaultServlet</servlet-class>
    <init-param>
     <param-name>resourceBase</param-name>
     <param-value>/path/to/your/static/files</param-value>
    </init-param>
    <init-param>
     <param-name>useFileMappedBuffer</param-name>
     <param-value>false</param-value>
    </init-param>
    <init-param>
     <param-name>etags</param-name>
     <param-value>true</param-value>
    </init-param>
    <init-param>
     <param-name>acceptRanges</param-name>
     <param-value>true</param-value>
    </init-param>
  </servlet>
 <servlet-mapping>
   <servlet-name>default</servlet-name>
    <url-pattern>/static/*</url-pattern>
  </servlet-mapping>
</web-app>

在上面的配置中,我们启用了 ETag 和 Last-Modified 标头,并禁用了文件映射缓冲区。这些设置可以帮助浏览器更有效地缓存静态文件,并在文件发生变化时重新请求文件。

总之,防止在嵌入式 Jetty 实例中缓存静态文件可以通过配置 web.xml 文件来实现。在配置文件中,可以设置静态文件的路径、禁用 Jetty 的缓存、启用 ETag 和 Last-Modified 标头等选项,以控制静态文件的缓存行为。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

在应用中嵌入Tomcat

在大多数配置中,默认的配置文件甚至从来不会变动。真的有办法可以在代码中启动 Tomcat 并且只需要 tomcat 的 jar 文件作为依赖么?...在下面的教程中,我们将会对 Jetty (Jetty 是一个为此目的而设计的一种嵌入式 servlet 引擎)进行测试,同时还会展示如何将 Jetty 迁移到 Tomcat 。...所有的静态资源(图片,CSS 和 javascript 脚本)都被直接打包到了 jar 文件中,可以作为类路径的资源进行访问。...web.xml 中的大部分标准配置在 Jetty 中都可以使用代码进行设置。 ? Tomcat 的实现比较复杂。也没有足够的关于使用嵌入式 Tomcat 和配置代码的文档。...最后,我在 Tomcat 的文档中没有找到类似 Jetty 中的 setResourceBase 方法来获取静态资源,因此只能创建一个自己的 StaticContentServlet,接下来将会看到。

2.3K20
  • 微服务架构Day05-SpringBoot之Servlet

    旧版 配置嵌入式Servlet容器 SpringBoot默认使用Tomcat作为嵌入式Servlet容器 如何定制和修改Servlet容器相关配置 1.在配置文件中定制和修改Servlet容器有关的配置...,Undertow Tomcat是最稳定的服务器,一般情况下推荐使用 Jetty更适合长连接的服务,但是长连接的服务Netty比Jetty更优秀 Undertow更适合于IO密集型服务器或者文件服务器...:后置处理器,在bean初始化(创建完对象,还没有赋值)时执行初始化工作 步骤: 1.SpringBoot根据导入的依赖情况,给容器中添加相应的嵌入式容器工厂 2.容器中某个组件要创建对象时,便会调用后置处理器...,只要是嵌入式Servlet容器工厂,后置处理器就会工作. 3.后置处理器从容器中获取所有嵌入式容器处理器定制器,调用嵌入式容器处理器定制器中的方法对嵌入式容器处理器进行配置 嵌入式Servlet容器启动原理...>>中,为WebApplicationInitializer类型的类创建实例 4.每一个WebApplicationInitializer都调用自己的onStartup方法启动 5.SpringBootServletInitializer

    40610

    肝了一个通宵!给学弟学妹们看的JavaWeb架构师学习路线

    早期Web应用主要用于浏览新闻等静态页面,HTTP服务器(比如Apache、Nginx)向浏览器返回静态HTML,浏览器负责解析HTML,将结果呈现给用户。...轻量级,是因为在微服务下,把一个大而全的单体应用,拆分成一个个功能单一的微服务,在这个过程中,服务数量大大增加,但为减少资源消耗,并且降低部署成本,我们希望运行服务的Web容器也是轻量级,Web容器本身应消耗较少的内存和...因此轻量级的Tomcat和Jetty就是一个很好的选择,并且Tomcat它本身也是Spring Boot默认的嵌入式Servlet容器。...Spring又是用容器来完成这个工作的的,容器负责创建、组装和销毁这些类的实例,而应用只需要通过配置文件或者注解来告诉Spring类与类之间的关系。...你会发现它们的“元神”是相似的,在Web应用的开发中,有一些本质的东西是不变的,而很多“元神”就藏在“老祖宗”那里,藏在Servlet容器的设计里。

    28810

    肝了一个通宵!给学弟学妹们看的JavaWeb架构师学习路线

    早期Web应用主要用于浏览新闻等静态页面,HTTP服务器(比如Apache、Nginx)向浏览器返回静态HTML,浏览器负责解析HTML,将结果呈现给用户。...轻量级,是因为在微服务下,把一个大而全的单体应用,拆分成一个个功能单一的微服务,在这个过程中,服务数量大大增加,但为减少资源消耗,并且降低部署成本,我们希望运行服务的Web容器也是轻量级,Web容器本身应消耗较少的内存和...因此轻量级的Tomcat和Jetty就是一个很好的选择,并且Tomcat它本身也是Spring Boot默认的嵌入式Servlet容器。...Spring又是用容器来完成这个工作的的,容器负责创建、组装和销毁这些类的实例,而应用只需要通过配置文件或者注解来告诉Spring类与类之间的关系。...你会发现它们的“元神”是相似的,在Web应用的开发中,有一些本质的东西是不变的,而很多“元神”就藏在“老祖宗”那里,藏在Servlet容器的设计里。

    25920

    Jenkins 版本更新历史

    在安装 Monitoring 插件时,防止有关 Java 11 缺少的、由 JavaMelody 触发的类的错误告警。 当构建连续失败时,在系统日志中包括详细信息。...通过在 Computer.removeExecutor 中删除一次性执行器来防止 master 上的“僵尸”执行器。...为资源根 URL 添加一个选项,Jenkins 可以通过该选项为用户生成的静态资源(例如工作空间文件或已归档的制品)提供服务,而无需 Content-Security-Policy 标头。...v2.190.3 (2019-11-20) 稳定性: 不允许用户使用 POST 在需要提交表单的 URL 上重新提交请求,因为那样无论如何都会失败。...lastCompletedBuild 永久链接未缓存在 …/builds/permalinks 文件中。 将标签固定到 Atom 供稿链接。

    3.5K30

    Spring Boot 之Web开发

    xxx xxxxAutoConfiguration:帮我们给容器中自动配置组件; xxxxProperties:配置类来封装配置文件的内容; 2、SpringBoot对静态资源的映射规则; @ConfigurationProperties...localhost:8080/abc === 去静态资源(lasspath:/resources/)文件夹里面找abc 3)、欢迎页; 静态资源文件夹下的所有index.html页面;被"/**"映射;...​ localhost:8080/ 找index页面 4)、所有的 **/favicon.ico 都是在静态资源文件下找; 如:设置替换默认的首页和图标 ?...注意:默认静态资源的路径是项目下的resource下的资源,也可以修改默认的静态资源配置,指定其他文件夹为默认的静态资源配置。...; 2017.12.17===Date; @Bean @ConditionalOnProperty(prefix = "spring.mvc", name = "date-format")//在文件中配置日期格式化的规则

    1.1K20

    第四章-Spring Boot web 开发

    xxx xxxxAutoConfiguration:帮我们给容器中自动配置组件; xxxxProperties:配置类来封装配置文件的内容; 2、SpringBoot对静态资源的映射规则; @ConfigurationProperties...abc ==3)、欢迎页; 静态资源文件夹下的所有index.html页面;被”/**”映射;== localhost:8080/ 找index页面 ==4)、所有的 **/favicon.ico 都是在静态资源文件下找...===Date; @Bean @ConditionalOnProperty(prefix = "spring.mvc", name = "date-format")//在文件中配置日期格式化的规则...; 2)、使用ResourceBundleMessageSource管理国际化资源文件 3)、在页面使用fmt:message取出国际化内容 步骤: 1)、编写国际化配置文件,抽取页面需要显示的国际化消息...容器; 先启动嵌入式的Servlet容器,再将ioc容器中剩下没有创建出的对象获取出来; ==IOC容器启动创建嵌入式的Servlet容器== 9、使用外置的Servlet容器 嵌入式Servlet容器

    1K40

    重学SpringBoot系列之嵌入式容器的配置与应用

    重学SpringBoot系列之嵌入式容器的配置与应用 嵌入式容器的运行参数配置 调整SpringBoot应用容器的参数两种配置方法 配置文件方式 常用配置参数 tomcat性能优化核心参数 自定义配置类方式...为Web容器配置HTTPS 如何生成自签名证书 将SSL应用于Spring Boot应用程序 测试 将HTTP请求重定向为HTTPS ssl证书配置可参考文章 切换到jetty&undertow容器...---- 如何生成自签名证书 在Windows的搜索字段中键入cmd以找到命令提示符,然后以“以管理员身份运行”右键单击。使用如下的keytool命令。您可以提及所需的证书名称,如下所示。...需要注意的是 在boot-launch.war在tomcat webapps目录里面解压到boot-launch文件夹。...jsp静态资源引用也必须是:/boot-launch/image/xxxx.png,不能是/image/xxxx.png JSP的war包中,webjars的资源使用方式不再被支持

    1.7K10

    Apache Tomcat 系统精讲 一课通关(高の青)

    )的性能比较如何?...在比较Apache Tomcat与其他Java Web服务器(如Jetty)的性能时,我们需要考虑多个方面,包括但不限于架构设计、扩展性、负载处理能力以及实际应用中的表现。...使用Web应用缓存:对于频繁访问的静态资源或数据,可以在Tomcat中配置缓存以减少数据库查询次数和网络传输,从而提高响应速度和降低内存占用。...通过在server.xml 中添加元素并设置CacheManager属性,可以启用Web应用缓存。优化连接池配置:Tomcat默认使用C3P0连接池管理数据库连接。...这表明在实施安全措施时,需要有一个明确的流程和步骤。防止漏洞再次出现:尽管大多数漏洞在首次被发现后都能得到修复,但仍有约3%的案例显示这些漏洞在未来的新版本中再次出现。

    21510

    SpringBoot 笔记 ( 四 ):web 开发

    abc 3)、欢迎页; 静态资源文件夹下的所有index.html页面;被”/**”映射 ​ localhost:8080/ 找index页面 4)、所有的 **/favicon.ico 都是在静态资源文件下找...; 如何定制:我们可以自己给容器中添加一个视图解析器,自动的将其组合进来 静态资源文件夹路径,webjars 静态首页访问,index 页面 自定义 favicon.ico 图标 ​ 自动注册了...在文件中配置日期格式化的规则 public Formatter dateFormatter() { return new DateFormatter(this.mvcProperties.getDateFormat...2)、使用ResourceBundleMessageSource管理国际化资源文件 3)、在页面使用fmt:message取出国际化内容 步骤: 1)、编写国际化配置文件,抽取页面需要显示的国际化消息...容器; 先启动嵌入式的Servlet容器,再将ioc容器中剩下没有创建出的对象获取出来; ==IOC容器启动创建嵌入式的Servlet容器== 9、使用外置的Servlet容器 嵌入式Servlet容器

    1.9K60

    了解spring-boot-starter

    简单来讲,我们可以将对SpringBoot的行为可以进行干预的配置方式划分 为几类: 命令行参数(Command Line Args) 系统环境变量(Environment Variables) 位于文件系统中的配置文件...位于classpath中的配置文件。 固化到代码中的配置项。...在文件系统中任何一个位置提供自己的logback.xml配置文件,然后通过logging.config配置项指向这个配置文件来启用它,比如在 application.properties中指定如下的配置...(约定),我们只有充分了解 了这些"潜规则”,才能更好地应用spring-boot-starter-web 1、项目结构层面的约定 项目结构层面与传统打包为war的Java Web应用的差异在于,静态文件和...最后,Spring Boot应用启动器还有一些替换技术的启动器,具体如下: spring-boot-starter-jetty 引入了Jetty HTTP引擎(用于替换Tomcat. 。

    63020

    SpringBoot:概述

    3、Spring Boot 优点 Spring Boot 优点如下: 独立运行:Spring Boot 而且内嵌了各种 Servlet 容器,Tomcat、Jetty等,现在不再需要打成 war 包部署到容器中...无代码生成及 xml 配置:Spring Boot 配置过程中无代码生成,也无需 xml 配置文件就能完成所有配置工作,这一切都是借助于条件注解完成的,这也是 Spring4.x 的核心功能之一。...如果想要使用静态资源就必须排除静态资源的请求路径。 2、Spring Boot 2.1 优化应用程序启动速度,启动时占用的内存更少。...4、Spring Boot 2.3 # 正常(优雅)停机 所有四个嵌入式Web服务器(Jetty,Reactor Netty,Tomcat和Undertow)以及响应式和基于Servlet的Web应用程序均支持正常关机...Buildpacks 打镜像包会使用缓存的,如果这一层没变那就不用重新打这一层,只需要重新打包修改过的层,这样一来,如果你只修改了 application 中的内容,比如新加了 Controller 或者配置文件等

    1.5K20

    springboot深入浅出系列(16章97节)

    3.5.加载旧项目配置文件的两种方式 3.6.profile不同环境使用不同配置 3.7.配置及配置文件的加载优先级 3.8.配置文件敏感字段加密 第四章 常用web开发数据库框架 4.1.整合Spring...5.1.webjars与静态资源 5.2.模板引擎选型与未来趋势 5.3.web应用开发之整合jsp 5.4.web应用开发之整合freemarker 5.5.web应用开发之整合thymeleaf...7.1.嵌入式的容器配置与调整 7.2.切换到jetty&undertow容器 7.3.打war包部署到外置tomcat容器 第八章 统一全局异常处理 8.1.设计一个优秀的异常处理机制 8.2....11.7.个性化自定义缓存到期时间 11.8.集群多节点应用session共享 第十二章 整合分布式文件系统fastdfs 12.1.fastdfs简介及架构说明 12.2.使用docker安装fastdfs...mybatis自动生成的代码 windows下如何安装git 喜欢 (44)or分享 (0)

    76843

    Salesforce 构建可扩展 API 的旅程

    那么,我们是如何实现的呢?在本文中,我将会分析在 Salesforce 为 Activity Platform 构建 API 的经验,它可以作为你自己编写 API 的一个指南。...我们选择了使用应用容器,因为它可以在物理机或 VM 上运行,一个操作系统实例能够支持多个容器,每个容器都在自己独立的执行环境中运行。...简单来讲,解析器就是由开发人员提供的一个函数,用来解析模式中定义的每个字段并从配置的资源(如数据库、其他 API 或缓存等)中返回值。...除了认证和授权,在设计 API 时还应考虑速率限制、数据脱敏(data masking)和载荷扫描。 总    结 我们已经展示了如何构建一个可扩展、高效、安全的 API。...在这个过程中,我们使用应用容器进行扩展,使用 GraphQL 和嵌入式 Jetty 确保高效和轻量级,并优先考虑了 API 的安全性。 今日好文推荐 “不搞职级、人人平等” 25 年后行不通了?

    1K10

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券