I have created a number of different online exams over the years, here is what I think you need to consider.
1. Creation of question sets - you need to make it as easy as possible to author new questions and edit old ones. I use XML text files because XML is so flexible. Trying to cram a variety of question styles into typical database tables can be very limiting.
2. Tracking users - you will need a way to track each user's status as they work through an exam. This means a custom
Java object, make it Serializable so the session mechanism can work with it. I write serialized status objects out to disk using a file name derived from the user's id so the exam can be resumed or reviewed.
3. Control and presentation - please do NOT think of this as a JSP problem. All of the logic should be in a
servlet. Presentation is only a small part of the total problem.
Bill