2017-01-22 77 views
0

所以我想要做的是根据某个特定的上下文特定的bean为所有请求设置一个cookie。我有一个bean contextBean,其中各个组件可以写入(它是线程安全的),并且对于每个请求,更新后的上下文都会写为cookie。然而,使用Filter不起作用,因为:在春天为所有请求设置一个cookie

doFilter(request, response, chain) { 
    chain.doFilter(); 
    response.addCookie(...); 
} 

response.isCommitted()true运行链后,用HandlerInterceptor如果控制器标注有@ResponseBody存在同样的问题(它似乎对方法的工作没有ResponseBody) 。有没有办法为所有处理程序执行此操作?

回答

0

正如您所说,在后处理阶段设置cookie不起作用。所以你的验证,然后将其设置在过滤器的预处理阶段。

即:

doFilter(request, response, chain) { 
    response.addCookie(...); 
    chain.doFilter(); 
}