public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException

Assuming you have only a single Filter configured in web.xml

Assuming you have logic in a doFilter that checks the value of a boolean.
If the boolean is true, then assume you send a http status code back and
use a "return" in the if condition.

example:

        if (someConditionIsTrue)
        {
            HttpServletResponse httpResponse = (HttpServletResponse)
response;
            httpResponse.sendError(HttpServletResponse.WHATEVER_YOU_CHOOSE);
            return;
        }

        chain.doFilter(request, response);


My question is:

If the chain is placed inside an else, which would not run if the condition
is true, does that violate the Filter in any way?  In other words, if one
does not call chain.doFilter within a doFilter method, should one expect
something bad?

What I'm really saying without saying it is, whether I call chain.doFilter
in or out of an "else", on Tomcat I get the sendError status that I expect,
but not from other containers.  I realize that statement is moot on this
list, but I thought I would share it.

Are there any conditions in which Tomcat will decide what to do on its own,
related to sendError, when it can't figure it out from code?

Leo


Using CATALINA_BASE:   "C:\apache-tomcat\apache-tomcat-7.0.62"
Using CATALINA_HOME:   "C:\apache-tomcat\apache-tomcat-7.0.62"
Using CATALINA_TMPDIR: "C:\apache-tomcat\apache-tomcat-7.0.62\temp"
Using JRE_HOME:        "C:\Program Files (x86)\Java\jdk1.7.0_67"
Using CLASSPATH:
"C:\apache-tomcat\apache-tomcat-7.0.62\bin\bootstrap.jar;C:\apache-tomcat\apache-tomcat-7.0.62\bin\tomcat-juli.jar"
Server version: Apache Tomcat/7.0.62
Server built:   May 7 2015 17:14:55 UTC
Server number:  7.0.62.0
OS Name:        Windows 7
OS Version:     6.1
Architecture:   x86
JVM Version:    1.7.0_67-b01
JVM Vendor:     Oracle Corporation

Reply via email to