First of all, you should package your entire application in a valid WAR structure. This includes your JSPs along with any servlets or utility classes.

I'm guessing you already partially have this, with a WEB-INF directory containing a web.xml file. In the WEB-INF directory, you will have a directory named "classes" and a directory named "lib". If you have any standalone classes (not in jar files), then you need to store them in the WEB-INF/classes directory, in subdirectories corresponding to the package the class is in (jar files are stored in "lib").

Second, any classes you define should not be in the "default" package (no package specified). You may run into problems if you use the default package. It's easy enough to define a one-level package structure where the root package is the name of your application as a legal package name.

Combining those two points, if you change your class to be "myapp.UserData", so it uses the "myapp" package, then you would store your class file in "WEB-INF/classes/myapp/UserData.class".

If you were using Ant to build your application, it makes it easy to do this without much work (once you get over the Ant learning curve).

In your "jsp:useBean" statement, you would then change the "class" attribute value to "myapp.UserData".

I suggest you download and read the Servlet 2.3 and JSP 1.2 specifications from the Sun Java web site.