in java web application you can easily set 400 and 500 error pages via web.xml like this
this means when someone clicks on a url which is 404 or 500 server will show them the pages you got in your app. this is better then showing them default server error pages. you can see good 404 examples from here
anyway while I was developing a web application with apache shiro I could not show my 404 or 500 pages and it was throwing a no securitymanager at this thread exceptions. after I research on this I find out that the example of shiro is not enough. because there was just a filter and it points /*. I tought that was enough but its not. you should change your apache shiro filter map like this.
after this change on web xml I finally got my error pages from my application..