Jetty允许使用Jetty重写功能设置头,但它似乎不是很聪明,只接受固定的字符串。
我如何告诉Jetty发送一个"8小时后过期"的标题?
使用Apache.htaccess和mod_expires,您可以进行"访问加8小时",但Jetty当然不理解.htaccess文件,我也无法在Jetty-rewrite.xml 中找到任何类似结构的信息
<Call name="addRule">
<Arg>
<New class="org.eclipse.jetty.rewrite.handler.HeaderPatternRule">
<Set name="pattern">*.png</Set>
<Set name="name">Expires</Set>
<Set name="value">access plus 8 hours</Set>
</New>
</Arg>
</Call>
这只是发送回文本"访问加1天",当然客户端会忽略它。
这可以/应该使用servlet过滤器来完成吗?Jetty有一个Gzip过滤器,但似乎没有提供类似的动态设置头的功能。
这可能是一个不错的功能。。
在bugs.eclipse.org的RT/JJetty下打开它的增强功能。补丁是受欢迎的,要么附加到bug,要么推送到我们的gerrit实例中。
话虽如此。。。jetty xml实际上是java之上的一个xml层,所以我怀疑如果你能找到它的APi,你实际上可以在java中这样做。我认为有一个joda时间库,它有一个方法,你可以在其中连接一些东西,调用new DateTime().plusHours(8)来填充该值。
也许最好将其作为一个功能添加。