You don't have a Tomcat problem - you have a general problem in understanding how to put together a web application!
Whether you're using Tomcat 3, Tomcat 4, or WebLogic 6, the classes all go in the WEB-INF folder off the root of the web app. Loose classes go in WEB-INF/classes and JARs go in WEB-INF/lib.
In the case of loose classes, you MUST replicate the complete package structure under the classes directory - see
http://www.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=50&t=000870 for examples.
Now for the other big question, and I think it's the one that is actually giving you headaches.
In Tomcat, the ability to treat the web server like a file server is deprecated. It was a major security exposure, so now ALL servlets MUST be mapped to a URL. In order to do this, you need *2* clauses - one to map the URL to a symbolic name for the servlet and another to specify what class is attached to that symbolic name.
That may sound needlessly complicated, but there are some definite benefits to it.
OK - here's an example:
for that example,
http://localhost/mywebapp/ShowEvents would run the EventCalendar servlet (assuming your webapp context set in server.xml was "mywebapp").
The secret of how to be miserable is to constantly expect things are going to happen the way that they are "supposed" to happen.
You can have faith, which carries the understanding that you may be disappointed. Then there's being a willfully-blind idiot, which virtually guarantees it.