RE:diferencias entre java y jsp
Java es un lenguaje de programacion orientado a objetos como ya lo sabemos.
Java esta dividido en tres arquitecturas que son:
J2ME para programar en dispositivos moviles como celulares y microconductores entre otros
J2SE que es el estandar de programacion en donde puedes hacer programas de consola y de ventanas con una gran alcance gracias al APi que nos da el lenguaje y el avance de terceros, entre dicho alcance esta comuncacion a traves de redes, manejo de archivos entre otros.
J2EE es la arquitectura para hacer aplicaciones empresariales en donde se encuentran algunas tecnologias tales como manejo de email (JavaMail), RMI, EJB's JDBC (Conexion a base de datos) entre otras.
Java quien inicialmente fue creada para microdispositivos, evoluciono al mundo web a traves de los tan conocidos Applets, luego, aprovechando las ventajas que daba el manejo del protocolo HTTP en la web, salieron los Servlets, las cuales son ejecutadas por un Servidor Web como tomcat y son llamadas por medio de un requerimiento HTTP, pero los Servlets tenian un gran problema, dificiles de mantener su codigo, entonces Java lo que hizo fue crear los jsp's, tienen el mismo comportamiento de un Servlet (Peticiones HTTP), pero su codificacion es mas parecida a la de una pagina html.
dentro de un jsp se puede colocar codigo Java por medio de una etiqueta especial llamada Scriptlet la cual se hace asi:
<%
String codigo = null;
Integer numero = new Integer();
%>
Esta tecnologia de los Servlets y los jsps se incluyen dentro de la arquitectura empresarial ya que hoy en dia la mayoria de las aplicaciones empresariales deben hacerse en web.
En resumen, Java es un lenguaje de programacion como C++ o Perl y un Jsp una clase especial de Java que se construye bajo la estructura de un archivo html, el cual es convertida en una clase normal se hace el llamado por medio de un Servidor Web bajo el protocolo HTTP.
Espero que haya aclarado su duda