JFinal如何设置Response header “Cache-Control”
使用JFinal开发了一套接口,客户端无法缓存数据。发现响应头中有如下两个字段值。
Pragma | no-cache |
Cache-Control | no-cache |
于是想通过如下代码修改响应头信息:
controller.getResponse().setHeader("Cache-Control","private")
结果运行后,发现响应头信息没有改变。不知这是什么原因?是不是Jetty需要如何配置?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
感谢@JFinal耐心的解答,我的问题解决了。解决方法如下:
在BaseController中添加如下方法:
然后新建一个MyJsonRender类,代码copy自JsonRender(由于JsonRender中的字段是private的,不好扩展,就重新copy了一个类),只是render()方法中屏蔽掉头这设置代码:
jfinal 针对某些类型的 Render 实现类添加了 Cache-Control 的设置,不知道楼主使用的是哪个 render 时碰到了这个设计,扩展式方式通常有两种:
1:通过继承 Render,然后用的时候 render(new MyRender(...)) 来实现自定义的 render
2:通过一个 BaseController extends Controller,然后覆盖掉父类相应的 render 方法,将 render 切换成自己的 render 实现