Die Java-Technologie war von Beginn an eng mit dem Internet verknüpft. Das ist vor allem Java-Applets zu verdanken. Diese Miniprogramme werden einfach in eine HTML-Seite eingebettet und können so von Internet-Browsern direkt ausgeführt werden. So einfach und problemlos sich dies zunächst anhört, birgt die Applet-Technologie eine ganze Reihe von Tücken wie lange Lade- und Initialisierungszeiten sowie Problemen mit Firewalls - Gründe, warum man heute fast nur noch von Servlets im Zusammenhang mit Java-Web-Anwendungen spricht.
Java-Servlets wurde von Sun Microsystems Mitte 1997 eingeführt (Siehe Abbildung oben). Mit dieser Java-API lassen sich Java-Webanwendungen mit einer dynamischen HTML-GUI entwickeln. Bevor die ersten Web-Frameworks auf Servlet-Basis entstanden, übernahmen Servlets sowohl die Präsentation als auch die Steuerung innerhalb von Java-Web-Anwendungen. Das war nicht nur sehr unproduktiv, sondern führte auch zu schwer wartbaren Anwendungen. Abhilfe schafften die 1999 vorgestellten JavaServer Pages (JSPs). Mit JavaServer Pages konnte Präsentation und Logik sauber getrennt werden.
Die Arbeitsteilung zwischen Servlet und JSP funktioniert so, dass das Servlet ausschließlich für die Steuerung (Controller) der Web-Anwendungen zuständig ist, während JSPs die Präsentation (Views) übernehmen. Zusammen mit Klassen für die Datenhaltung und Geschäftslogik entsteht eine Model-View-Controller-Architektur (Siehe Abbildung unten). Eine Web-Anwendungen auf dieser Basis ohne ein Web-Framework zu entwickeln, ist zwar möglich, aber für größere Anwendungen zu aufwändig. Um die Entwicklung von Web-Anwendungen zu erleichtern, sind im Lauf der Jahre viele Java-Web-Frameworks entstanden.