JFinal如何设置Response header “Cache-Control”

发布于 2021-11-30 02:51:04 字数 364 浏览 501 评论 2

使用JFinal开发了一套接口,客户端无法缓存数据。发现响应头中有如下两个字段值。

Pragmano-cache
Cache-Controlno-cache

于是想通过如下代码修改响应头信息:

controller.getResponse().setHeader("Cache-Control","private")

结果运行后,发现响应头信息没有改变。不知这是什么原因?是不是Jetty需要如何配置?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

狼亦尘 2021-12-04 03:56:23

感谢@JFinal耐心的解答,我的问题解决了。解决方法如下:

在BaseController中添加如下方法:

 

然后新建一个MyJsonRender类,代码copy自JsonRender(由于JsonRender中的字段是private的,不好扩展,就重新copy了一个类),只是render()方法中屏蔽掉头这设置代码:

凌乱心跳 2021-12-02 11:38:31

jfinal 针对某些类型的 Render 实现类添加了 Cache-Control 的设置,不知道楼主使用的是哪个 render 时碰到了这个设计,扩展式方式通常有两种:

1:通过继承 Render,然后用的时候 render(new MyRender(...)) 来实现自定义的 render

2:通过一个 BaseController extends Controller,然后覆盖掉父类相应的 render 方法,将 render 切换成自己的 render 实现

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文