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