Un servlet es una clase de java que se ejecuta en un servidor web (un Apache Tomcat, usualmente) y devuelve al cliente el codigo HTML que deberia ver.
JSP es parecido pero al reves, ya que el codigo de java esta entremetido entre el codigo html.
Todo esto es desde la parte del servidor, el cliente solo vera el codigo html y javascript, no más
La diferencia entre un lenguaje del servidor (como jsp, servlets, php, asp, etc) y un lenguaje cliente ( como html, javascript, etc) es que en es en el servidor donde se ejecuta todo el codigo, accede a las bases de datos, hace todas las operaciones que deba y el codigo html que le salga, se lo envia al cliente.
Espero que te hayas aclarado ;-)