Java - Webapplikationen



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

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

Web 2.0 Software-Architekturen

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

Java zur Realisierung von Internetanwendungen

Java Server Pages (JSP)

WEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?

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

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

Der lokale und verteilte Fall

MCRServlet Table of contents

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

Programmieren in Java

Workshop Java Webentwicklung Tapestry. Ulrich Stärk

PHP-Schwachstellen und deren Ausnutzung

JSP Grundlagen. JEE Vorlesung Teil 5. Ralf Gitzel

WebService in Java SE und EE

e-commerce Running Tomcat

Internet und WWW Übungen

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

Applet Firewall und Freigabe der Objekte

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Datenbanksysteme SS 2007

Es wird das Struts <html:option> Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht.

JSP und Servlet Programmierung

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Einführung Packages

Thomas Wagner 2009 (im Rahmen der TA) Installation von MySQL 5.0 und Tomcat 5.5

Prinzipien Objektorientierter Programmierung

Web- Applikationen. in Java-Web

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben

Proseminar: Website-Management-Systeme

RESTful Web. Representational State Transfer

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

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

JSP JSTL. JEE Vorlesung Teil 6. Ralf Gitzel

Eine Anwendung mit InstantRails 1.7

Java Server Pages 2 und Benutzerdefinierte Tags. Strahil Yordanov

Objektorientierte Programmierung. Kapitel 12: Interfaces

Java Webentwicklung (mit JSP)

Grundlagen von Python

Existierende Systeme I Bibliotheken & Frameworks

Typumwandlungen bei Referenztypen

Einführung in die Scriptsprache PHP

Java: Vererbung. Teil 3: super()

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

Übungen zu Softwaretechnik

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

Anwendungsprotokolle: HTTP, POP, SMTP

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

Einrichtung Secure-FTP

Applets I. Grundlagen der g Applet-Programmierung

Einführung in die Programmierung für Wirtschaftsinformatik

Webbasierte Informationssysteme

Einführung in Javadoc

Datenbank-basierte Webserver

Objektorientierte Programmierung

Auszug aus JAX-WS Folien

Application Note. Anbindung von Kunden-Software an SpiderControl Web Visualisierung

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Algorithmen und Datenstrukturen

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Session Management und Cookies

Web Visu Tutorial. Hipecs Web Visu. Übersicht

Planung für Organisation und Technik

Web Sockets mit HTML5. Quelle:

How-to: Webserver NAT. Securepoint Security System Version 2007nx

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Studentische Lösung zum Übungsblatt Nr. 7

Internetanbindung von Datenbanken

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Anleitung zur Webservice Entwicklung unter Eclipse

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

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

Zugriff auf Daten der Wago über eine Webseite

Multimedia im Netz Wintersemester 2011/12

FIS: Projektdaten auf den Internetseiten ausgeben

Softwareentwicklung mit JAVA EE

4. Network Interfaces Welches verwenden? 5. Anwendung : Laden einer einfachen Internetseite 6. Kapselung von Paketen

Übungen zur Softwaretechnik

Java Kurs für Anfänger Einheit 5 Methoden

BusinessMail X.400 Webinterface Gruppenadministrator V2.6

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

A361 Web-Server. IKT-Standard. Ausgabedatum: Version: Ersetzt: Genehmigt durch: Informatiksteuerungsorgan Bund, am

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Testen mit JUnit. Motivation

MSXFORUM - Exchange Server 2003 > Konfiguration NNTP unter Exchange 2003

e-books aus der EBL-Datenbank

Dokumentation owncloud PH Wien

Assoziation und Aggregation

Seminar DWMX DW Session 015

Komponenten & Hypermedia Seminar Prof. Dr. Frank Thiesing Struts Java-Framework für Web-Applikationen. Referenten: Fabian Bartelt Jens de Witt

Benutzerdokumentation Web-Portal

Struts 2 Das Imperium schlägt zurück?

Gesicherte Prozeduren

Transkript:

Java - Webapplikationen Bestandteile (HTTP,, JSP) Aufbau (Model View Controller) Datenverwaltung (Java Beans, Sessions) Entwicklung (Projektstruktur, Sysdeoplugin für Eclipse) 17. Januar 2006 Jan Hatje JAVA-Webapplikationen 1

HyperText Transfer Protocol (HTTP) HTTP dient der Kommunikation zwischen Webserver und Webbrowser HTTP ist ein zustandsloses Protokoll Request Methoden 1) GET: Standardmethode, Parameter werden an die URL angehängt 2) POST: Für grössere Datenmengen, Parameter befinden sich im Requestbody Response (HTML, Dateien) Client (Browser) Request (GET oder POST) Server (Webserver) Response (HTML) Verbindungsabbau JAVA-Webapplikationen 2

Webserver Apache Tomcat Sun veröffentlicht nur die Spezifikation für Webserver Apache implementiert diese mit Tomcat Client z.b. Browser Request Response Webserver z.b. Apache (statische Inhalte) dynamische Inhalte container z.b. Tomcat (entsprechende s werden aufgerufen und die Ausgabe zurückgegeben) Fordert der Client dynamische Inhalte an, leitet der Webserver die Anfrage an den container weiter Tomcat kann auch selbständig arbeiten, wird aber meist zusammen mit einem Webserver eingesetzt JAVA-Webapplikationen 3

s s sind vollstänig in Java implementiert Sie werden auf dem Server abgearbeitet Der Client sieht nur HTML (Benötigt keine JRE) CGI + Geschwindigkeit, für jede Anfrage wird nur ein Thread erzeugt. + Einfache Kommunikation zwischen Objekten (z. B. Datenbankanbindung kann geteilt werden) Nur Java möglich Geschwindigkeit, für jede Anfrage wird ein extra Prozess erzeugt. Aufwendige Kommunikation zwischen Objekten + CGI ist eine Schnittstelle große Auswahl an Sprachen JAVA-Webapplikationen 4

s Codebeispiel public class MyClass extends Http { public void doget (HttpRequest req, HttpResponse res) { muss von der Klasse Http abgeleitet werden. In doget werden Client Anfragen vom Typ GET verarbeitet. PrintWriter out = res.getwriter(); out.println("<html><body>"); out.println("<h1>output</h1>"); if (req.getparameter("param1")!= null) { var1 = req.getparameter("param1"); Objekte HttpRequest und HttpResponse bieten Informationen über die Anfrage bzw Mechanismen für die Antwort. Methode getwriter() von HttpResponse schreibt die Antwort für den Client. public void dopost (HttpRequest req, HttpResponse res) { Methode getparameter() bietet Zugriff auf die vom Client gesendeten Parameter. JAVA-Webapplikationen 5

JSP (Java Server Pages) s sind aufwendig, da sie auch statische Inhalte ausgeben JSP trennen dynamischen und statischen Teil: HTML (statische Elemente) Java (Logik und dynamische Inhalte) JSP spezifische Elemente (Arbeitserleichterung) JSP werden vom JSP-Compiler in ein umgewandelt 1. Client fordert eine JSP an 2. Server wandelt die JSP, wenn sie erstmals aufgerufen wurde 3. Server führt das generierte aus und antwortet dem Client JAVA-Webapplikationen 6

JSP Codebeispiel <body><html> <%@ page import = "java.util.*" %> <%@ page include file = "url" %> Hallo <%= username %> Time: <%= new Date() %> <% int param1 = 0; if (param1 == request.getparameter("param2") { out.println( "Alles ok" ); else %> <%-- Kommentar --> <jsp:forward page="nextpage.jsp"/> </body></html> HTML-Tags Direktiven:Anweisungen für das globale Dokument Ausdrücke: Variable oder Rückgabewert einer Methode wird in Ausgabestrom geschrieben Skriptlets: beliebiger Javacode. Request (httprequest) Response (httprersponse) Kommentar in einer JSP Aktionen: starten spezielle JSP- Funktionalitäten. JAVA-Webapplikationen 7

MVC - Modell s und JSP werden schnell unübersichtlich Wiederverwendbarkeit von Projektteilen ist schwierig Ein Projekt sollte in drei Einheiten getrennt werden: Model (Daten der Anwendung) View (Repräsentation der Daten) Controller (Verarbeitung der Daten, Aufruf von Views) View Controller update Model JAVA-Webapplikationen 8

MVC 2 - Modell Dispatcher Controller request Javaklasse oder response JSP Java Bean View Model JAVA-Webapplikationen 9

Java Bean JSP Java Bean public class UserDataBean { private String username = new String(); <body><html> <jsp:usebean id="userdata" class="myproject.userdatabean" /> Hello <jsp:getproperty name="userdata" property="username" /> <form> <input name="username" type="text"> <input name="status" type="text"> </form> <jsp:setproperty name="userdata" property="*"/> private int status = 0; public String getusername() { return username; public void setusername(string username) { this.username = username; public int getstatus() { return status; public void setstatus(string status) { this.status = status; </body></html> JAVA-Webapplikationen 10

Session Daten können nicht über mehrere Anfragen gespeichert werden, da HTTP zustandslos ist Sessions müssen indirekt angelegt werden: Eine Session wird über eine ID in einem Cookie identifiziert Clientanfragen können einem bestimmten Nutzer zugeordnet werden Objekten werden Attribute zugeordnet, über die sie identifiziert werden <% MyProject.UserData udat = (MyProject.UserData)session.getAttribute( "userdata"); %> JSP <%= udat.printaddress() %> HttpSession ses = requ.getsession(true); UserData udat = (UserData) ses.getattribute("userdata"); if(udat == null) { udat = new UserData(); ses.setattribute("userdata", udat); JAVA-Webapplikationen 11

Sysdeo - Eclipseplugin Tomcat kann direkt über Eclipse gesteuert werden. Projekttyp Java Tomcat Projekt Eclipsedebugger steht zur Verfügung Projektexport in *.war Dateien Automatische Anpassung von server.xml (Eclipse Workspace kann benutzt werden) JAVA-Webapplikationen 12

Tomcat Projekt - Struktur Allgemeine Klassendateien von Tomcat für s und JSP Hier befindet sich die normalen Java- Klassen und diejenigen für die s Die vom JSP-Compiler generierten s *.jar-dateien, die für das Projekt benötigt werden web.xml ordnet jedem eine URL zu, über die es aufgerufen wird JSP, HTML, -Dateien können im Projektverzeichnis beliebig angeordnet werden JAVA-Webapplikationen 13