所以我想要做的是根据特定的特定于上下文的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:
}
}
}
)。有没有办法为所有处理程序执行此操作?
答案 0 :(得分:0)
正如您所说,在后处理阶段设置cookie不起作用。所以进行验证,然后在过滤器的预处理阶段进行设置。
那是:
doFilter(request, response, chain) {
response.addCookie(...);
chain.doFilter();
}