Exam Study Kit p.97
The method setStatus(int sc) is similar to the sendError() methods in the sense that we may use it to set the status codes representing errors in the response. However, an important point about the setStatus method is that , unlike the sendError() methods, it does not trigger the container to generate an error page. It just sends the status code to the browser, which is displayed by the browser as per its setting
I don't really understand this sentence. I've tried this following simple code:
and my browser displays an blue/white 400 error page, as expected.
By adding a declarative error handling in my web.xml like this:
the redirection to the ExceptionHandlerServlet is well done also.
So what does the sentence mean exactly?
Thanks for your response,
setStatus() from javax.servlet.http.HttpServletResponse, unlike the sendError() methods, doesn't trigger the container to generate an error page
Indeed, with Tomcat, setStatus method trigger the container to generate a jakarta tomcat error page.
So what's the real difference between setStatus et sendError page, except that with setStatus we can't send a message?
I would be very grateful for any light on this topic,
There are a lot of discrepancies between the specifications and implementation. So it is just a fact of life. Tomcat has a very good compliance with the specification, which doesn't necessarily mean it cannot exceed the specifications.