Possible reason to prefer sendError over setStatus: http://blogs.atlassian.com/2007/07/responsesenderror_vs_responses/ - basically in servlet 2.4 `setStatus` expects you to still serve a response, whereas `sendError` will redirect to the configured error page.