【问题标题】:How to serve static content dynamically in Struts2如何在 Struts2 中动态提供静态内容
【发布时间】:2011-07-12 21:39:13
【问题描述】:

在 Struts2 中,可以通过将图像、JS 或 CSS 文件放入资源/静态中来提供静态内容,例如图像、JS 或 CSS 文件。从这一点开始,Struts2 负责根据 HTTP 请求为它们提供服务,每个人,尤其是我的 JSP,都很高兴。

现在我必须从数据库中检索所有这些静态文件;我将它们命名为byte[]。目的是在不重新部署 Web 应用程序的情况下交换文件。

您对如何优雅地为他们服务有什么建议吗? 我可以覆盖例如一些静态资源提供者?或者,我应该为此提供行动吗? 我主要关心缓存。我还有什么需要注意的吗?

在此先感谢,任何提示表示赞赏! :)

格雷戈

【问题讨论】:

    标签: struts2 browser-cache


    【解决方案1】:

    创建一个操作以从数据库中获取数据,然后使用stream 结果类型。 stream 结果将自动处理为响应设置适当的缓存标头(默认情况下启用缓存)。您需要提供内容类型和InputStream

    有关详细信息,请查看 StreamResult 的 Javadoc。

    【讨论】:

    • 好吧,流结果是一个好的开始,但我没有让它在默认情况下缓存。它从未发送过 304 响应。必须检查请求中的“If-Modified-Since”标头并在响应中设置“Expires”、“Last-Modified”和“Retry-After”标头。当客户端的缓存仍然是最新的时,我发送的是 httpheader (304) 结果而不是流结果。这样一切顺利!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-27
    • 1970-01-01
    • 2017-12-27
    • 2012-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多