A JSP is an 'easier' way to write a servlet. JSP's are compiled, and end up as servlets that output HTML. So JSP's are used as a presentation technology.
Servlets "extend the functionality of the web server". What this means in english, is that you can write a servlet that does no actual HTML output.. but simply act as a CGI to accept (for example) a bunch of form data, push it into a database, and then redirect to a response page.