www.wikidata.de-de.nina.az
Als Jakarta Servlet fruher Java Servlet bezeichnet man Java Klassen deren Instanzen innerhalb eines Webservers Anfragen von Clients entgegennehmen und beantworten Der Inhalt der Antworten kann dabei dynamisch also im Moment der Anfrage erstellt werden und muss nicht bereits statisch etwa in Form einer HTML Seite fur den Webserver verfugbar sein Servlets stellen eine Weiterentwicklung der ursprunglich im Web Bereich verwendeten Schnittstelle CGI oder anderer Konzeptionen dar Java Webanwendungen nutzen hauptsachlich Servlets wahrend die klassische Erzeugung dynamischer Web Inhalte uber CGI zum Beispiel mittels PHP Ruby on Rails Active Server Pages oder Perl erfolgt Die Servlet Spezifikation ist Teil der Jakarta EE Technologie Servlet Container sind damit fester Bestandteil aller Jakarta EE Anwendungsserver Jedoch ist ein Servlet Container nicht immer eine vollstandige Jakarta EE Implementierung Es gibt unabhangig davon Webserver die einen Servlet Container enthalten z B Apache Tomcat Jetty Inhaltsverzeichnis 1 Verwendung 2 Begriff 3 Standardisierung Versionen 4 Abgrenzung 5 Beispiel 6 Weblinks 7 EinzelnachweiseVerwendung BearbeitenEin Servlet wird implementiert indem eine Klasse erstellt wird die die Schnittstelle javax servlet Servlet implementiert Es gibt die Klasse javax servlet http HttpServlet die diesen Vorgang vereinfacht Anschliessend wird eine oder beide Methoden doGet und doPost uberschrieben um die beiden wichtigsten HTTP Methoden GET und POST verarbeiten zu konnen Haufig wird auch nur die Methode service uberschrieben welche unabhangig vom HTTP Befehl aufgerufen wird Um das Servlet auf dem Web Server registrieren zu konnen mussen Metainformationen bereitgestellt werden Diese Metainformationen werden hinterlegt in einer XML Datei namens web xml dem sogenannten Deployment Descriptor Der Deployment Descriptor wird zusammen mit der kompilierten Servlet Klasse sowie ggf weiteren benotigten Klassen in einer Archiv Datei dem Web Archiv zusammengefuhrt Dieses Web Archiv wird dem Servlet Container uber eine von ihm bereitgestellte Funktionalitat ubergeben deployment Zur Laufzeit greift der Webserver auf den Servlet Container zu der wiederum moglicherweise eine Instanz des Servlets erzeugt und die entsprechende Methode startet Einige Container wickeln mehrere Requests und damit Threads gleichzeitig uber einen Pool von Servlets ab Deswegen sollte bei Attributen innerhalb eines Servlet immer der gleichzeitige Zugriff von mehreren Threads im Hinterkopf behalten werden Haufig werden in einem Servlet sowohl Parameter der Anfrage als auch Sitzungsdaten verwendet um zum Beispiel eine personalisierte Antwort zu erzeugen oder Daten auf dem Server zu speichern oder zu verandern Die Antworten konnen neben Text zum Beispiel HTML oder XML auch Bilder oder andere Binardateien sein Servlets werden oft nach dem Entwurfsmuster Model View Controller MVC in Form von Jakarta Server Pages JSP verwendet Hierbei reprasentieren meist die JSP oder JSF die View Interessanterweise werden auch die JSP Seiten zur Laufzeit zu Servlets kompiliert Die selbst geschriebenen Servlets bilden Controller sowie Model ab Frameworks wie z B Spring MVC oder Struts bilden eine weitere Ebene der Abstraktion und bieten ein scharfer getrenntes MVC Muster Begriff BearbeitenDas englische Wort Servlet ist ein Kofferwort das sich aus den Begriffen Server und Applet zusammensetzt also serverseitiges Applet und somit Servlet Sun hat mit Einfuhrung der Sprache Java zwei Arten von Anwendungen definiert Applications also Desktop Anwendungen und Applets wortlich Anwendung chen also Mini Anwendungen die nur innerhalb eines Containers in der Regel in einem Webbrowser ablaufen Als die Java Technologie auch auf die Serverseite kam suchte man dort einen Namen fur die kleinen Codestuckchen die jetzt nicht mehr im Kontext des Browsers sondern in dem des Webservers laufen der an Applet erinnert Schliesslich ist es ein im weitesten Sinne ahnliches Konzept kleine Serveranwendung chen die einen Container hier ein um ein Servlet Container erweiterter Web Server um sich herum brauchen um laufen zu konnen Dabei kam man auf Servlet Standardisierung Versionen BearbeitenDie Handhabung das Verhalten und das Verwalten von Jakarta Servlets folgt einem Standard der uber den Java Community Process JCP definiert wird An diesem Standard wird aktiv gearbeitet und es gibt verschiedene Versionen Die letzte veroffentlichte Version ist 5 0 welche Bestandteil der Jakarta EE 9 Spezifikation ist Sie wurde im September 2020 veroffentlicht 1 Abgrenzung BearbeitenUm die Funktionalitat eines Servers zu erweitern konnen separate ausfuhrbare Module geschrieben werden Diese Server Extensions gibt es fur zahlreiche Plattformen z B existiert fur die Microsoft Internet Information Services IIS das sogenannte Internet Server API ISAPI In Java werden Server Erweiterungen mit Hilfe der Servlet API geschrieben Die Server Extension Module heissen Servlets Beispiel BearbeitenDer Benutzer sendet ein ausgefulltes Formular im Browser ab Der Browser lost die damit verbundene Aktion aus indem er die Formulardaten an den Webserver sendet Der Webserver ubersetzt den Aktionsnamen des Formulars in den Namen einer Servletklasse Er verwendet dazu Informationen aus dem Deployment Deskriptor einer Datei namens web xml Der Webserver ruft je nach HTTP Methode des Formulars GET oder POST die Methode doGet bzw doPost Methode des Servlets auf und ubergibt dabei die Anfragedaten request als Parameter zusammen mit einem response Objekt mit dem Ausgaben getatigt werden konnen Die Ausgaben werden nach Abschluss der Methode vom Webserver an den Browser gesendet Der Browser nimmt die Antwort entgegen und stellt sie dar Der Benutzer liest die Antwort im Browser Das folgende Ablaufdiagramm zeigt einen typischen Ablauf beim Aufruf eines Servlets nbsp Ablaufdiagramm einer Web Anwendung mit ServletWeblinks Bearbeitenjcp org Jakarta Servlet 5 0 englisch Java Servlet 4 0 Spezifikation englisch Java Servlet 3 1 Spezifikation englisch Java Servlet 3 0 Spezifikation englisch Java Servlet Technology Overview bei Oracle englisch Tomcat apache org englisch die Referenzimplementation der Servlet und JSP SpezifikationEinzelnachweise Bearbeiten Jakarta Servlet 5 0Webserver SchnittstellenProtokolle CGI SCGI FastCGI AJPAPIs C NSAPI C ASAPI C ISAPI Java Servlet ASP NET Python WSGI Ruby Rack JavaScript JSGI Perl PSGI Lua WSAPI Apache Module mod jk mod lisp mod parrot mod perl mod php mod python mod wsgi mod ruby Phusion Passenger Web APIs WSDL XML RPC SOAP REST Abgerufen von https de wikipedia org w index php title Jakarta Servlet amp oldid 222892008