Inhalt: Konfiguration: web.xml ; server.xml Workflow: Weiterleitung von Requests Lektion II-IV Lektion V-VI



Ähnliche Dokumente
Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck

Web 2.0 Software-Architekturen

Application Server und Continuous Integration

In diesem Dokument wird Tomcat als Beispiel Servletengine und Apache als Beispiel Webserver verwendet.

Servlet-zentrierte Architektur von Web-Anwendungen mit Java Servlets, Java Server Pages (JSPs) und Java Beans

Praktikum Datenbanken und verteilte Systeme SS Java Server Pages und Servlets -

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS Universität zu Lübeck

Java - Webapplikationen

Sitzungszustand. Vorläufige Version 309 c 2005 Peter Thiemann

JSP und Servlet Programmierung

Web- Applikationen. in Java-Web

e-commerce Running Tomcat

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter

Programmieren II. Remote-Programmierung. Institut für Angewandte Informatik

Java zur Realisierung von Internetanwendungen

Einführung Servlets. JEE Vorlesung Teil 2. Ralf Gitzel

Java Server Pages (JSP)

4. Servlets Ein kleiner Einstieg

Tomcat Konfiguration und Administration

Web-Programmierung (WPR)

4. Servlets Ein kleiner Einstieg. Kurze Java Historie. Erinnerung: Internet Anwendungen. Konzept eines Seitenaufrufs

Webtechnologien. Stunde 6 ( ) - HTTP - HTML - Servlets - AJAX. Verschoben haben wir - JSP (Java Server Pages) - JSF (Java Server Faces)

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Web-Services Implementierung

Einführung Servlets. JEE Vorlesung Teil 2. Ralf Gitzel

Eclipse Tomcat 5.0 und Struts auf der Win32- Plattform integrieren

Java Servlet Technology

Praktikum aus Softwareentwicklung 2, Stunde 11

Datenbanksysteme SS 2007

Henning Mersch. Tomcat. im Rahmen des RBG-Seminar SS04. Apache-Jakarta-Tomcat-Server RBG-Seminar 1/17

Apache Tomcat. Inhalt. Rechner und Netzarchitektur SS Einleitung. Architektur

Inhaltsverzeichnis. 1. Vortrag. 1. Vortrag Beispiele Quellen Seite 1 / 14

Auszug aus JAX-WS Folien

Programmieren II. Wie kommen Daten von einem Webserver? Vorlesung 12. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011

Started by the Italian student Stefano Mazzocchi. Java Apache XML (JAX) Lektion 11: Cocoon. 4. Servlet JSP Framework Struts

JSP, Tomcat, JDBC. Agenda. Übung Informationsintegration JSP & Tomcat JDBC. l Syntax. l Implizite Objekte. l Direktiven

Mit OSGi Webanwendungen entwickeln Was geht, was nicht?

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging

FHZ. Servlets/JSP. Lernziele. Hochschule Technik+Architektur Luzern. Inhalt

Installation des GeoShop Redirector für Apache (Stand ) ================================================================

WebService in Java SE und EE

Programmieren mobiler Geräte

Schritt 4: Hallo Enterprise Bean

Datenbanken: Servlets und JSP

C O C O O N. Wo ist Cocoon in die Apache Projekte einzureihen?

Client/Server-Programmierung

Mini Servlets. Abschlussprojekt Internetprogrammierung. Stefan Wehr. 17. Juli 2006

Einleitung JavaServer Pages Erweiterungsmechanismen Beispiel Fazit. JavaServer Pages. Seminar Webprogrammierung WS04/05. Timothy Burk. 6.

Java zur Realisierung von Internetanwendungen

Installation von xpetstore auf Tomcat unter Verwendung von C-JDBC und eines Clusters aus HypersonicSQL Backends

Projekt Systementwicklung. Wie kommen Daten von einem Webserver? Java-Applikationsserver. Servlets, JSP. Handout S. 1. Dr.

OS IDE Webserver Integration des Webservers in die IDE Wireshark Webserver II Dynamisches Webprojekt in Eclipse

DB-Aspekte des E-Commerce Schwerpunkt: Techniken. Servlets und JavaServer Pages

Skalierbare Webanwendungen mit Apache und Apache Tomcat. W3L AG

Einleitung. Gliederung. Struts-Framework. Model-View-Controller-Pattern

Workshop Java Webentwicklung Tapestry. Ulrich Stärk

Webanwendungen mit Java und JavaServerPages

Henning Mersch. Tomcat. im Rahmen des RBG-Seminar SS04. Apache-Jakarta-Tomcat-Server RBG-Seminar 1/17

Webanwendungen mit Java

Internet und WWW Übungen

AVID-Übung 3. EJB mit JBoss und Eclipse. 17. Juni Andreas I. Schmied Abteilung Verteilte Systeme Projektgruppe AspectIX

Internetanbindung von Datenbanken

Einleitung. Funktion. Panzenböck Phillipp. Download Installation. Testen. Konfiguration

Inhaltsverzeichnis. Zusammenfassung Wydler

Der IBM Websphere Portalserver

Enterprise java beans step-by-step

Web-Suche. Eingabeformulare. Websuche: Benutzer-Schnittstelle. Ein einfaches Suchformular. Benutzer-Schnittstelle.

OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes

Java zur Realisierung von Internetanwendungen

FRANZIS PROFESSIONAL SERIES. Herbert Burbiel. SOA & Webservices. ~ in der Praxis. 197 Abbildungen

Interaktive Medien 2

J a v a S e r v l e t s

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

Inhaltsverzeichnis. Enterprise Java im Überblick. Technologien der Java2 Enterprise Edition

Java Servlets. Praktikum aus Softwareentwicklung 2. Java Praktikum SS 2010

Vertiefte Grundlagen Graphentheorie

Java Servlets. Praktikum aus Softwareentwicklung 2. Java Praktikum SS 2009

Platform as a Service (PaaS) Prof. Dr. Ch. Reich

Themen. Web Service - Clients. Kommunikation zw. Web Services

Comes Spezifikation. Stefan Wehr Prof. Dr. Peter Thiemann. 14. Dezember 2005

Softwareentwicklung mit Enterprise JAVA Beans

Dataport IT Bildungs- und Beratungszentrum. HTML- Grundlagen und CSS XML Programmierung - Grundlagen PHP Programmierung - Grundlagen...

Die Installation des GeoShop Redirector für IIS (Internet Information Server, Version 4.0, 5.0 und 6.0) umfasst folgende Teilschritte:

Web 2.0 Software-Architekturen

Einführung in. JNLP und Java Web Start

Fortgeschrittene Servlet- Techniken. Ralf Gitzel

Web Services. XML, WSDL, SOAP und UDDI Einblicke und Ausblicke J.M.Joller 1

Planung für Organisation und Technik

Enterprise Application Integration Erfahrungen aus der Praxis

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Installationshandbuch. WeLearn Release für Linux

FH LU JEE Vorlesung SS Ralf Gitzel

Softwareentwicklung mit JAVA EE

Java Web Services Metadata JSR-181

Anwendung eines Enterprise Java Beans

Eclipse Tomcat Plugin Starthilfe

Java Server Pages 2 und Benutzerdefinierte Tags. Strahil Yordanov

Transkript:

Servlet II Inhalt: Konfiguration: web.xml ; server.xml Workflow: Weiterleitung von Requests Lektion II-IV Lektion V-VI 3-1 1. Grundlagen 2. Servlets 3. JSP 4 1.1. JAR Files 4 1.2. TCP/IP, Sockels 4 1.3. HTTP 4 1.4. Java Web Service Developer Pack (WSDP) 4 1.5. Ant 4 1.6. JAVA Fehlermeldungen 4 2.1. Servlet Framework 4 2.2. Tomcat Servlet Container 4 2.3. Lebenszyklus 4 2.4. Hello World Servlet 4 2.5. Implizite Objekte 4 2.6. Einfache Servlets 4 2.7. Konfiguration (web.xml) 4 2.8. Anfrage weiterleiten 4 2.9. Filter 4 2.10. Cookies 4 2.11. Session Tracking 4 3.1. Architektur 4 3.2. Syntax, Skripte, Direktiven 4 3.3. Implizite Objekte 4 3.4. Aktionen 4 3.5. JavaBeans 4 3.6. Custom Tags 4. Servlet JSP Framework Struts 5. XML 4 4.1. Architektur 4 4.2. Planung einer Webanwendung 4 4.3. Implementierung 4 5.1. Grundlagen 4 5.2. DTD & Schemata 4 5.3. Parser (SAX, DOM) 4 5.4. XPath 4 5.5. XSLT 4 5.6. XSL-FO 6. XML Framework Cocoon 4 6.1. Architektur 4 6.2. Cocoon Beispiel 4 6.3. Sitemap 4 6.4. XSP 7. JAVA Webservices 4 7.1. SOAP 4 7.2. UDDI / ebxml 4 7.3. WSDL 4 7.4. Implementierung eines Webservice 3-2 1

Ablauf http://..index.html Get Request Webserver Servlet Container Response doget() 3-3 Konfiguration Webserver Servlet Container Web Anwendung server.xml Request Response web.xml Context Session 3-4 2

Struktur einer Webanwendung JaxWebApp/ index.html main.jsp images/ company.jpg people.jpg WEB-INF/ web.xml classes/ jax/ lib/ HelloWorld.class counter.class xerces.jar Webanwendung HTML Seiten Java Server Pages Konfiguration Classes Files jar Files 3-5 WAR web application archive WAR => JAR-File Struktur einer Webanwendung Bsp: mit ANT <property name="war.dist" value= lekt3.war"/> <jar jarfile="${war.dist}" basedir="${build.dir}"/> Kommando Zeile: jar -cfv lekt3.war PATH/build 3-6 3

Deployment einer Webanwendungen Eine Webanwendung wird auf einem Server installiert, indem das WAR- File in den webapp Ordner kopiert wird. Tomcat 4.0 http://jakarta.apache.org WAR-File 3-7 2.7 Konfiguration (web.xml; server.xml) server.xml => Konfiguration des Servlet Containers web.xml => Konfiguration einer Webanwendung 3-8 4

server.xml <Server> JAVA VM <Service> Sammlung mehrer Connectors <Connector /> Endpunkt von REQ und RES <Engine> Repräsentiert Catalina Objekt <Host> Virtueller Host <Context> Definiert die individuellen Webapplikationen </Context> </Host> </Engine> </Service> </Server> 3-9 Bsp. <Server classname="org.apache.catalina.core.standardserver" port="8005" debug="0" shutdown="shutdown"> <Listener classname="org.apache.catalina.mbeans.serverlifecyclelistener" debug="0"/> <Listener classname="org.apache.catalina.mbeans.globalresourceslifecyclelistener" debug="0"/> <GlobalNamingResources> <Environment name="jwsdp.home" override="true" type="java.lang.string" description="absolute Pathname of the JWSDP Installation" value="/users/guggi/jwsdp-1_0"/> <Resource name="userdatabase" type="org.apache.catalina.userdatabase" scope="shareable" description="users and Groups Database" auth="container"/> <ResourceParams name="userdatabase"> <parameter> <name>factory</name> <value>org.apache.catalina.users.memoryuserdatabasefactory</value> </parameter> <parameter> <name>pathname</name> <value>conf/tomcat-users.xml</value> </parameter> </ResourceParams> </GlobalNamingResources> <Service classname="org.apache.catalina.core.standardservice" debug="0" name="internal Services"> <Connector classname="org.apache.coyote.tomcat4.coyoteconnector" redirectport="443" buffersize="2048" port="8081" connectiontimeout="60000" scheme="http" enablelookups="false" secure="false" protocolhandlerclassname="org.apache.coyote.http11.http11protocol" debug="0" proxyport="0" tcpnodelay="true" minprocessors="5" maxprocessors="75" acceptcount="10" useurivalidationhack="true"> <Factory classname="org.apache.catalina.net.defaultserversocketfactory"/> </Connector>... 3-10 5

Konfiguration Ein Webservice wird im Servletcontainer mittels eines Context Knoten angesteuert. Die Angaben der Konfiguration des Servletcontainers stehen in der server.xml Datei. 3-11 Installation eines neuen Service 3-12 6

Dynamische Konfiguration des Servletcontainers Web Application Manager List Install http://<host>:8080/manager/list http://<host>:8080/manager/install? path=/mywebapp&war=file:/path/to/mywebapp http://<host>:8080/manager/install? path=/mywebapp& war=jar:file:/path/to/mywebapp.war!/ Reload Remove http://<host>:8080/manager/reload?path=/mywebapp http://<host>:8080/manager/remove?path=/mywebapp 3-13 Konfiguration web.xml Deployment Descriptor Verteilungs- oder Installationsbeschreibung Definition der Servlets oder Filter (Name,Klasse,Mapping) Initialisierungs-Parameter Fehler Seiten Startseiten 3-14 7

Bsp.: web.xml <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>helloworld</servlet-name> <servlet-class>jax.helloworld</servlet-class> </servlet> <servlet-mapping> <servlet-name>helloworld</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app> 3-15 URL Mapping <servlet-mapping> <servlet-name>login</servlet-name> <url-pattern>*.log</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>wetter1</servlet-name> <url-pattern>/wetter/*</url-pattern> </servlet-mapping> 3-16 8

Mapping Eine Webanwendung wird via Context assoziiert. /Jax File: PATH/JaxWebApp/* Servlets in der Webanwendung, werden relativ zu diesem Context angesprochen. http://host/jax/hello jax.helloworld.class 3-17 web.xml <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> </welcome-file-list> <error-page> <error-code>404</error-code> <location>/404.html</location> </error-page> </web-app> 3-18 9

Error Page <error-page> <exception-type> java.lang.arithmeticexception </exception-type> <location> /error.html </location> </error-page> 3-19 2.8 Anfrage weiterleiten out.println( <a href=\ http://www.unibas.ch\ > Uni Basel </a> ); res.setstatus(res.sc_moved_temporarily); res.setheader( Location, http://www.new.site ); res.sendredirect( http://www.new.site ); RFC 2616 Hypertext Transfer Protocol (HTTP/1.1) http://www.rfc-editor.org 3-20 10

res.sendredirect CLIENT http://..formular1 Get Request Response Status 302 Location ant2.html SERVER Servlet: formular1 res.sendredirect( ant2.html ); http://..ant2.html Get Request Response ant2.html <HTML> </HTML> 3-21 public class randomforward2 extends HttpServlet { private static final String CONTENT_TYPE = "text/html"; private Vector wetter = new Vector(); Random random = new Random(); /**Initialize global variables*/ public void init() throws ServletException { wetter.add("/html/gut.html"); wetter.add("/html/schlecht.html"); wetter.add("/html/nebel.html"); wetter.add("/html/kalt.html"); } /**Process the HTTP Get request*/ public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { res.setcontenttype(content_type); PrintWriter out = res.getwriter(); int index = Math.abs(random.nextInt())% wetter.size(); String go = (String)wetter.elementAt(index); 3-22 11

// Methode 1 //res.sendredirect(req.getcontextpath()+go); //res.flushbuffer(); // Methode 2 //res.setstatus(res.sc_moved_temporarily); //res.setheader("location",req.getcontextpath()+go); //res.flushbuffer(); // Methode 3 String dummy = "3; URL="+req.getContextPath()+go; res.setheader("refresh",dummy); res.flushbuffer(); out.println("<html><head><title>randomforward</title></head>"); out.println("<body>hierhin kommen Sie nicht</body></html>"); 3-23 RequestDispatcher RequestDispatcher rd; rd = getservletcontext(). \\ getrequestdispatcher( /display.html ); rd.forward(req,res); RequestDispatcher disp = req.getrequestdispatcher("/display.html"); disp.forward(req, res); 3-24 12

res.sendredirect CLIENT SERVER http://..formular1 Get Request Servlet: formular1 res.sendredirect( ant2.html ); Response ant2.html <HTML> </HTML> 3-25 13