404 means "Page not found". So your servlet URL in the web.xml file isn't mapping properly. CHeck the Tomcat logs and you may find out where it's looking when you want it to be looking somewhere else. Don't forget - EVEN UNDER WINDOWS the classname must be precisely capitalized, otherwise the Java classloader won't match, since it does case-senstive lookups. Windows is case-insenstitive, but Java is not!
As far as ports go: If you do not explicitly specify a port in a url, port 80 is assumed by the browser. Thus,
http://www.javaranch.com and
http://www.javaranch.com:80 are identical.
EVERY http request must specify the port, since there is no such thing as a session in a browser - sessions are artifacts created by servers. Thus, there is no ongoing client-side context to remember the port. Cookies don't count - the browser merely remembers them, it doesn't act directly on their contents.
Also, it is perfectly permissible (and often very useful) to have a server serving requests from more than one port. You can see this very dramatically in a situation where the same machine is using apache on port 80 and Tomcat on port 8080.
The one exception here is if you use a relative URL on a web page.