[SERVLET_SPEC-7] Clarify expected behviour of fitlers and welcome files Created: 25/Aug/11 Updated: 21/Aug/14
|Remaining Estimate:||Not Specified|
|Time Spent:||Not Specified|
|Original Estimate:||Not Specified|
The specification is not explicit regarding the order of welcome file processing and filter mapping. This has caused limited user confusion.
My own expectation is that welcome files are processed first and then filter mappings. Previous conversations with Servlet 3.0 EG members confirmed this. It would be help to get a short note of this added to the Servlet 3.1 spec.
|Comment by rojkov [ 07/Dec/11 ]|
I am not sure I understand. Can I still a filter request to a welcome file with the proposed change?
|Comment by markt_asf [ 07/Dec/11 ]|
OK. Here is some additional clarification.
If a user requests "/foo" and "/foo" is a directory, the welcome files "index.jsp" and "index.html" are configured and "index.html" is present then what is compared against the filter mappings. Is it "/foo" or "/foo/index.html"
The clarification I previously received from the Servlet 3.0 EG is that is is "/foo/index.html" that is compared against the filter mappings. It is this clarification I would like to see in the 3.1 spec.
|Comment by Rajiv Mordani [ 28/Jun/12 ]|
Sounds reasonable to me - one question is what happens in the case of the DefaultServlet being invoked in the case where we don't have a welcome file? Should it then be that the filter is applied to /foo or not? I will start a thread on this in the EG.
|Comment by Rajiv Mordani [ 09/Jan/13 ]|
Mark I went back and looked at the discussion in the 3.0 and am including some of that here -
My colleague Shing Wai Chan pointed out that the proposed solution is
Consider a slight variation of Greg's original example, where
Further assume that:
The proposed new algorithm would not find any matching static
I guess there is nothing we can do to help in this case. It would be
and Greg's response to that was -
I think this is indeed a problem, but I don't think there is much we can
There is a fundamental problem of mixing the search semantics that
I think that the current compromise is the best we can do if we
Given that even appending the files may not work, I think we can't really fix it the way you are suggesting.
|Comment by markt_asf [ 09/Jan/13 ]|
I think in the case of the default servlet returning a 404 then the filter should be applied if url-pattern matches whatever url the default servlet is returning a 404 for.
Regarding the the issues described in the extract of the Servlet 3.0 discussion I think that is a slightly different issue. In Tomcat we introduced a list of "resource only servlets" which essentially only get mapped to welcome files if a file resource (e.g. a JSP) exists at that URL. I do wonder if that container specific solution could be generalised (e.g by a new attribute on Servlet) but that is a discussion for a different issue / the mailing list.