A fairly glib explanation is as follows:
Servlets are
Java Classes that generate HTML (or other output)
JSPs are HTML-like files that generate Java Classes.
IMHO - JSP's are better for generating the 'View' tier of the architecture as they provide a better separation between the presentation and the business logic.
Servlets are usful for other purposes such as acting as the 'controller' for incoming requests i.e. delgating the processing and then forwarding the request to the next appropriate JSP or for handling requests for binary content such as documents or images.
Hope this helps
Andy Bowes
Andy Bowes<br />SCJP, SCWCD<br />I like deadlines, I love the whoosing noise they make as they go flying past - Douglas Adams