Estou começando também. Estou lendo o livro da Kathy, realmente muito bom, recomendo.
Bom, provavelmente vai aparecer alguém com uma melhor definição que a minha, mas vamos lá:
JSP: Uma página html comum que permite o uso de código java (famosos scriptlets). Obviamente com a extesão JSP.
Servlet: “Servidorzinho”. Nada mais é do que um programa escrito em java. Implementa a interface Servlet, o que faz com que o programa possa ser interpretado pelo container de servlets. Li isso aqui em algum lugar: “Um servlet está para um WEB server assim como um Applet está para um browser”. Ou seja, uma aplicação java que fornece um serviço específico. Achei essa definição muito boa!
JSTL: Uma biblioteca de tags que permite escrever a lógica de um programa java sem usar a linguagem java. Acho que a idéia dele é facilitar a vida dos frutas…digo…web designers que não manjam nada de java.
TagLib…acho que ainda não cheguei nessa capítulo…hehehehe.
Titulo: Desenvolvendo Aplicações Web com JSF,SERVLETS, JAVA SERVER FACES, HIBERNATE, EJB3 PERSISTENCE E AJAX
Editora: Ciencia Moderna
Autor: Edição Gonçalves.
Servlets = Classes java que recebem 2 parametros da request e response, no qual vc consegue enxergar todos os dados da requisição do cliente
Jsp = A mesma coisa porem é escrito juntamente com tags html, javaScript…
Jstl = A mesma coisa que Jsp porem mais organizada, parecida com html, proporciona ao desenvolvedor uma visão melhor de seu codigo
Jstl = São TagLig um padrao de desenvolvimento WEB
Servlet é uma tecnologia java para html dinâmico, através de uma requisição o servlet container pega a instância da servlet chamando o método que vc sobreescreveu - service,doGet,doPost - que gera uma resposta que é passada ao usuário.
JSP tb é para uso de html dinâmico, é onde vc coloca o html diretamente e usa o código java através das scriplets.
JSTL é uma api com bibliotecas de tags adicionais ao jsp, essas tags encapsulam os comandos java.