150 likes | 333 Views
Sommersemester 2004 Lehrstuhl für Wirtschaftsinformatik Technische Universität München. Einführung in Java Servlets. Spaska Ivancheva & Alexei Krivoborodov. 25.05.2004. Überblick. Einf ührung Alternative Ansätze Was ist ein Servlet? Wie funktionieren Servlets?
E N D
Sommersemester 2004 Lehrstuhl für Wirtschaftsinformatik Technische Universität München Einführung in Java Servlets Spaska Ivancheva & Alexei Krivoborodov 25.05.2004
Überblick • Einführung • Alternative Ansätze • Was ist ein Servlet? • Wie funktionieren Servlets? • Lebenszyklus eines Servlets • Praktisches Beispiel • Literatur und Links
Motivation • Ziel : Web-Inhalte dynamisch zu generieren • Grund: Abhängigkeit von Benutzereingaben, öftere Änderung der Daten, … • Lösung: Schnittstellen zwischen den Anwendungen und dem Web-Server • Verschiedene Ansätze • Common Gateway Interface ( CGI ) (1995) • API (Application Programming Interface) • Servlets • ...
Alternative Ansätze • Common Gateway Interface: • Entwickelt vom National Center for Supercomputing Applications (NCSA) • spezifiziert den Datentransport vom Web-Server zumAnwen-dungsprogramm • Nachteile: • Plattformabhängigkeit • Start von externen Prozessen bei Verwendung externer Programme • Mühsamer Datenaustausch wegen Unabhängigkeit der CGI-Programme
Alternative Ansätze • Application Programming Interface : Schnittstellen von den Herstellernzu ihren eigenen Web-Servern • Programme werden direkt in den Web-Server eingebunden • Geschwindigkeitsvorteil • Nachteil: Absturz des Web-server • Servlet-Ansatz • eine Anwendungsprogrammierschnittstelle für serverseitige Java-Programme • Erzeugung von Thread bei Servletanfrage
Was sind Servlets? • Server-Programme, die innerhalb eines eingabe-/ausgabeorientierten Servers laufen • Permanenter Lauf der JVM im Hintergrund • Vergleichbar mit Java-Applets • Verarbeiten HTTP-Anfragen und liefern HTTP-Antworten zurück • Senden HTML-Anweisungen mit println() in den Ausgabestrom • Java-Anwendungen, die alle Java-Eigenschaften erben und mächtige Werkzeuge für die Entwicklung von Web-Anwendungen anbieten • können als Ersatz für CGI-Skripte dienen
Einfaches Beispiel import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends Httpservlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(“text/html”); Printwriter out = response.getWriter(); out.println(“<html><head><title>Greeting</title></head> <body>Hello, World!</body></html>”); } }
Servlets entwickeln und testen • Servlet – Container • Leitet Anfragen an das Servlet weiter • Verwaltet den Lebenszyklus der Servlets
Servlets entwickeln und testen • Web – Server mit Servlet – Funktionalität • Apache Tomcat • Jetty • Oracle 9i JServer • Macromedia JRun
Lebenszyklus von Servlets Servlets sind als Java–Objekte realisiert, die vom Servlet–Container bei Bedarf erzeugt und beseitigtwerden können.
Lebenszyklus eines Servlets • Interface javax.servlet.Servlet • Initialisierung • void init(ServletConfig config) • Abarbeitung der Anfragen • void service(ServletRequest req, ServletResponse res) • doGet(ServletRequest request, ServletResponse response) • … • Beendigung • void destroy()
Servlet – API • Zwei Parameter: ServletRequest, ServletResponse • Event Handlers: doGet(), doPost() • PrintWriter out = response.getWriter(); out.println(“<html>”); …
Parameterübergabe mit den Servlets • Ein Servlet kann auf verschiedene Arten aufgerufen werden: • Durch Eingabe einer URL im Browser • Als Ziel eines HTML-Formulars • Zugriff auf Parameter über das Request-Objekt: • String getParameter( String name ) • String[] getParameterValues( String name ) • Enumeration getParameterNames( )
Literatur und Links • Christian Ullenboom. Java ist auch eine Insel www.galileocomputing.de/openbook/javainsel3.html • Java Servlet Technology http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Servlets.html • Fundamentals of Java Servlets http://developer.java.sun.com/developer/onlineTraining/ Servlets/Fundamentals/