This week's book giveaway is in the OCAJP forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide 1Z0-808 and have Jeanne Boyarsky & Scott Selikoff on-line! See this thread for details.
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, Cyril.
SCJP 1.4, SCWCD, SCBCD, IBM XML, IBM Websphere 285, IBM Websphere 287
Joined: Jul 02, 2003
Please tell me if I'm wrong in thinking that the sentence
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, Regards, Cyril.
You are good. The difference lies in the implementation of Servlet and JSP container. The specification of Servlet and JSP doesn't REQUIRE the container to generate the error page triggered by setStatus. However, it doesn't prohibit doing that either. 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.