Functionally, you could say Servlets and JSPs are the same. They both are compiled and run as Servlets on the JVM. Pretty much anything you can do in a Servlet, you can do in a JSP.
Having said that, JSPs are obviously designed to serve markup to the client, but it HTML, HTML, XML or WML. They are easy to manipulate in a builder tool. Servlets typically defer to a JSP for markup generation.
Servlets are all about the Java. You can write all sorts of control code in a Servlet. A Servlet typically handles an incoming request, and figures out how to handle that incoming request, which usually involves validation, calling on JavaBeans and EJBs, and as I mentioned, deferring to a JSP for markup generation.
JSPs are mostly HTML with a little bit of Java in them. Servlets are largely Java, with the occassional and rare bit of HTML. Someone more clever than me once remarked that "JSPs are just Servlets turned inside out."
I've got a bit more on how Servlets and JSPs fit into MVC on my website. Here's the link: