Separados, JSP, Servlets e JSTL cobrem quase todas as alternativas para o desenvolvimento web no lado do servidor:
JSP permite inserir Scripts de Servidor dentro de uma página HTML, permitindo gerar conteúdo dinâmico, de modo similar a PHP e ASP;
Servlets oferecem programabilidade avançada e recursos como filtros e eventos, de modo similar ao antigo CGI ou atuais plug-ins de servidor web, como o Apache Modules e ISAPI, e geração de conteúdo binário, como imagens, PDF ou streaming;
JSTL fornece programação baseada em tags, de modo similar ao Cold Fusion permitindo templates de página livres de código estruturado e mais amigáveis ao web designer.
Entretanto, a soma é maior do que as partes. Utilizando JSP junto com Servlets e JSTL podemos criar aplicações sofisticadas e poderosas, utilizando recursos Web 2.0 como Ajax e RIA(Aplicações Web com interfaces ricas), e baseadas na arquitetura MVC (Model-View-Controller). Ao mesmo tempo, essas aplicações são desenvolvidas de forma rápida graças aos recursos do IDE Eclipse.
Já para o desenvolvimento de interfaces AJAX são usadas bibliotecas Javascript. Uma delas, Jquery, é a mais popular entre os desenvolvedores Java e PHP.