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

Ser*_*gey 5 caching jetty embedded-jetty

我想防止我的 CSS 被缓存在浏览器端。如何在嵌入式 Jetty 实例中执行此操作?

如果我使用 xml 配置文件,我会添加如下几行:

<init-param>
  <param-name>cacheControl</param-name>
  <param-value>max-age=0,public</param-value>
</init-param>
Run Code Online (Sandbox Code Playgroud)

我怎样才能把它变成代码?

现在我以这种方式启动 Jetty:

BasicConfigurator.configure();

Server server = new Server();
SocketConnector connector = new SocketConnector();
// Set some timeout options to make debugging easier.
// 1 hour
connector.setMaxIdleTime( 1000 * 60 * 60 );
connector.setSoLingerTime( -1 );
connector.setPort( 8081 );
server.setConnectors( new Connector[] { connector } );

WebAppContext bb = new WebAppContext();
bb.setServer( server );
bb.setContextPath( "/" );
bb.setWar( "src/webapp" );

server.addHandler( bb );
Run Code Online (Sandbox Code Playgroud)

我想我应该在 WebAppContext 职责范围内的某个地方搜索 setControlCache 。

对此有何建议?

kro*_*old 4

我通常使用 ServletHolder,如下所示:

WebAppContext context = new WebAppContext();
ServletHolder servletHolder = new ServletHolder(MyServlet.class);
servletHolder.setInitParameter("cacheControl","max-age=0,public"); 
context.addServlet(servletHolder, "myservletpath");
Run Code Online (Sandbox Code Playgroud)

虽然这与您的代码不完全匹配,但您应该能够从那里找出答案?