It's almost always a bad idea to override the service method directly. Instead override doGet or doPost.
Instead of writing directly to the servletOutputStream, use a printWriter by calling response.getWriter.
Your web.xml heading specifies servlet spec 2.2. Tomcat 5.5 supports servlet spec 2.4. This might not be a big problem with this servlet but you are going to run into problems later if you try to learn any of the newer features (filters, listeners, EL, JSTL, etc..).
Lastly, and this is probably what's causing your 404 error, the url-pattern in your mapping specifies /hello but in your url you're requestiong /HelloWorldServlet Change one or the other.
There could be a few issues here 1. When you are starting the Server see if your app loaded fine or it is giving any errors while loading , cause sometimes the app does not load and you get the Not Avaiable error
2. If it is loading fine I belive there is some problem with your web.xml servlet mapping tag. can you show your modified web.xml file
The significant problems we face cannot be solved by the same level of thinking which created them – Einstein SCJP 1.5, SCWCD, SCBCD in the making