在春天为所有请求设置cookie

时间:2017-01-22 17:10:21

标签: java spring

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

doFilter(request, response, chain) {
    chain.doFilter();
    response.addCookie(...);
}
运行链后

response.isCommitted() true如果控制器使用HandlerInterceptor进行注释,则@ResponseBody存在同样的问题(它似乎适用于没有ResponseBody的方法struct graph { int el[MAX_V][MAX_V]; int noVert; int noEdges; bool directed; graph() { _asm { mov ebx, 0 mov esi, MAX_V mov edi, this START_L1: cmp ebx, MAX_V je END_L1 mov ecx, 0 START_L2: cmp ecx, MAX_V je END_L2 mov eax, ebx imul esi add eax, ecx mov [edi + eax*4], dword ptr 0 inc ecx jmp START_L2; END_L2: inc ebx jmp START_L1 END_L1: } } } )。有没有办法为所有处理程序执行此操作?

1 个答案:

答案 0 :(得分:0)

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

那是:

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