Privacy Policy Cookie Policy Terms and Conditions Servlet - Wikipedia

Servlet

aus Wikipedia, der freien Enzyklopädie

Als Servlets bezeichnet man Java-Klassen, deren Instanzen innerhalb eines J2EE Applicationservers Anfragen von Clients entgegen nehmen und beantworten. Solche Klassen müssen immer die Schnittstelle „javax.servlet.Servlet“ oder eine davon abgeleitete (normalerweise „javax.servlet.http.HttpServlet“) implementieren. 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) für den Webserver verfügbar sein. Servlets stellen somit das Java-Pendant zu CGI-Skripten oder anderen Konzepten, mit denen dynamisch Web-Inhalte erstellt werden können (PHP, Ruby on Rails etc.), dar.

Häufig werden in einem Servlet Parameter der Anfrage und Sitzungsdaten verwendet um zum Beispiel eine personalisierte Antwort zu erzeugen oder Daten auf dem Server zu speichern oder zu verändern. Die Antworten können neben Text (zum Beispiel HTML oder XML) auch Bilder oder andere Binärdateien sein.

Servlets werden oft im Rahmen der J2EE-Spezifikation nach dem Model-View-Controller-Pattern (MVC) in Form von JSP verwendet. Wobei die JSP die View repräsentiert. Frameworks wie Struts komplettieren dabei das MVC Muster.

Instanzen eines Servlets werden bei Bedarf von der Laufzeitumgebung, dem sogenannten Web-Container erzeugt und von ihm aus angesprochen. Der Webcontainer seinerseits kommuniziert mit dem Webserver oder ist integraler Bestandteil eines Java-Webservers.

Bei Verwendung der Servlet-Spezifikation und einer entsprechenden Webcontainer-Umgebung (zum Beispiel Apache Tomcat) besteht die Implementierung einer dynamischen Webseite in folgendem: Es wird eine von javax.servlet.http.HttpServlet abgeleitete Klasse erstellt. Die beiden Methoden doGet und doPost der Superklasse werden überschrieben um die beiden wichtigsten HTTP-Methoden GET und POST verarbeiten zu können (häufig wird auch nur eine überschrieben). Die Metainformationen über das Servlet werden in einer XML-Datei namens „web.xml“ hinterlegt, dem Deployment Descriptor. Diese XML-Datei wird zusammen mit der kompilierten Klasse (sowie ggf. weiteren benötigten Klassen) in eine einzige Archiv-Datei zusammengeführt (sogenanntes Web-Archiv), dieses wiederum wird dem Webcontainer über eine von ihm bereitgestellte Funktionalität zur Verfügung gestellt (sog. Deployment).

Inhaltsverzeichnis

[Bearbeiten] Wort

Das englische Wort „Servlet“ wird nicht übersetzt. Es handelt sich hierbei um eine Wortkreation aus den Begriffen „Server“ und „Applet“, also serverseitiges Applet und somit Servlet.

Sun hat mit Einführung der Sprache Java zwei Arten von Anwendungen definiert: Applications (also richtige, ausgewachsene Desktop-Anwendungen) und Applets (wörtlich: Anwendung-chen, also kleine 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 für die kleinen Codestückchen, die jetzt nicht mehr im Kontext des Browsers, sondern in dem des Webservers laufen, der an Applet erinnert. Schließlich ist es ein im weitesten Sinne ähnliches Konzept: kleine Serveranwendung-chen, die einen Container (hier: den Webserver) um sich herum brauchen, um laufen zu können. Dabei kam man auf Servlet.

[Bearbeiten] Abgrenzung

Um die Funktionalität eines Servers zu erweitern, können separate ausführbare Module geschrieben werden. Diese „Server Extensions“ gibt es für zahlreiche Plattformen: z. B. existieren für die Microsoft Internet Information Services (IIS) das sogenannte Internet Server API (ISAPI). In Java werden Server-Erweiterungen mit Hilfe der Servlet API geschrieben, und die Server-Extension-Module heißen Servlets.

[Bearbeiten] Beispiel

Beispiel Ablaufdiagramm einer Web-Anwendung mit Servlet:

Bild:Servlet.png

[Bearbeiten] Weblinks

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -