我在调用
后尝试在响应对象中设置标题chain.doFilter()
但是,标头未设置。在调用chain.doFilter()之后,控件是否会回到doFilter()方法?
答案 0 :(得分:1)
但是,标题未设置。
如果响应已经提交,则会发生这种情况(读取:响应的第一部分,包括所有标头,已经发送到客户端;这是一个不归路的点)。一个有点理智的servletcontainer会在任何尝试为已经提交的响应设置标头时抛出IllegalStateException
。这应该在服务器日志中可见。你读过它们吗?
在调用chain.doFilter()之后,控件是否会回到doFilter()方法?
您可以通过放置断点或sysout / logger行轻松自行检查。但是,肯定的是,如果没有来自doFilter()
调用的未被捕获的异常,控件将以通常的Java方式返回并且剩余的行将被执行。
回到您的具体功能要求,您需要重写代码,以便在提交响应之前设置标头。由于具体的功能要求没有以任何方式阐述,因此在这个答案中不可能给出一些提示或启动示例。最直接的方法是在调用doFilter()
之前设置标题。
答案 1 :(得分:0)
请求过滤器可以:
响应过滤器可以: