Webanwendungen mit Java und JavaServerPages

Ähnliche Dokumente
Multimedia im Netz Wintersemester 2012/13

JSP Übung. JEE Vorlesung Teil 7. Ralf Gitzel

DOKUMENTATION. CaptchaAd mit Java. Entpacken und Hochladen. Die Schritte zur Integration des CaptchaAd-Modul im Einzelnen. Informationen von CaptchaAd

JSP Usereingabe. Inhalt. 1 Zielsetzung. SEW(3.Jg) Unterlagen zu Java Server-Pages Teil 2

4. Servlets Ein kleiner Einstieg

JSP Direktiven. Präprozessor-Anweisungen, die in die JSP-Datei eingebettet sind und vor dem eigentlichen Übersetzungsvorgang ausgeführt JSP

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

Web- Applikationen. in Java-Web

Java zur Realisierung von Internetanwendungen

JSP und Servlet Programmierung

Praktikum aus Softwareentwicklung 2, Stunde 12

Grails. Weiterführende Themen zu Internet- und WWW-Technologien. Matthias Springer. 06. Juni 2011

Java - Webapplikationen

Enterprise JavaBeans Überblick: 9. Architektur der Web-Schicht. 9.1 Einleitung 9.2 Front-Controller Servlet 9.3 Java Server Pages 9.

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

VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer. Kommunikation I (Internet) Übung 5 Formulare

Komponentenorientierte Software-Entwicklung. Seite 1 / 42

Einführung. Ralf Gitzel

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

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

Play Framework, MySQL, JPA, HQL, HTML, jquery,

Praktikum aus Softwareentwicklung 2, Stunde 11

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

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

FH LU JEE Vorlesung SS Ralf Gitzel

Java Server Pages (JSP)

Dabei sollen die Nutzern nach einer Authentifizierung entsprechend ihren Rechten Begriffe ändern, anlegen und kommentieren können.

Persistenz. Ralf Gitzel

Eclipse Tomcat 5.0 und Struts auf der Win32- Plattform integrieren

Sitzungszustand. Vorläufige Version 309 c 2005 Peter Thiemann

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

Java zur Realisierung von Internetanwendungen

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

Perl-Praxis. CGI-Skripte. Madis Rumming, Jan Krüger.

Web-basierte Anwendungssysteme PHP Teil 2

Schritt 4: Hallo Enterprise Bean

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

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

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

FH LU JEE Vorlesung SS Ralf Gitzel

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II SS 2015 PHP MVC. Dr. Christian Senger. PHP MVC 1 von 21

PHP JavaScript Kapitel 9. Java-Script-Objekte und das Event-Modell

Vorlesung: Web Engineering. Kurs: TINF17A / TINF17B. Datum:

Vortrag. Thema: Apache Struts + Tiles

Perl-Praxis. CGI-Skripte. Jörn Clausen Jens Reeder, Jan Krüger

Grundlagen Internet-Technologien INF3171

Eclipse Tomcat Plugin Starthilfe

Datenverwaltung Darstellung Interaktion. WebPoint. Ein Framework zur Erstellung von webbasierten Verkaufsanwendungen. Torsten Walter. 10.

Vorteil. Einfach zu realisieren performant. Übersichtlich performant. "Vererbung" von Änderungen an vererbender Tabelle

JSP Grundlagen. JEE Vorlesung Teil 5. Ralf Gitzel

Anleitung zur Integration der /data.mill API in SAP Java Applikationen

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

FileMaker und PHP Workshop

Hilfe meine Oracle Datenbank spricht nicht mit meiner JSP

Praktikum aus Softwareentwicklung 2, Stunde 13

JSP (Tomcat) mit MySQL-Datenbank

Perl-Praxis. CGI-Skripte. Jörn Clausen

JSP JSTL. JEE Vorlesung Teil 6. Ralf Gitzel

Einführung in das Programmieren

D.18 D.20 D Java-Server-Pages. 4 Java-Server-Pages (2) 4.1 Auszeichnungen. 4.2 Deployment. Nachteil von Servlets

Datenbanken: Servlets und JSP

Sicherheit. letzten beiden Punkte typischerweise durch Verschlüsselung realisiert. Komponentenbasierte Software Entwicklung. Prof. Dr.

Fortgeschrittene Servlet- Techniken. Ralf Gitzel

Dynamische Webseiten mit PHP. Oder: LAMP - The open way

Internet-Technologien

Internetapplikationen

Embedded Webserver in Forth


Programmierung von Client/Server- Anwendungen

JSF (JavaServer Faces) Erstellen einer Webseite

FH LU JEE Vorlesung SS Ralf Gitzel

Funktionen. - sind kleine, meist ausgelagerte Programme bzw. Programmfragmente. - können Werte zurückgeben, z.b. Berechnungen

V by WBR1/BFH-TI 2011 by MOU2/BFH-TI

Java Web-Anwendungen Modell 1. Gliederung

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

Java Server Pages 2 und Benutzerdefinierte Tags. Strahil Yordanov

Anleitung zur Webservice Entwicklung unter Eclipse

Programmdokumentation. VBSkript zum Erstellen eines Verzeichnislistings als HTML Datei

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

Der IBM Websphere Portalserver

Web 2.0 Software-Architekturen

Datenbanksysteme SS 2007

CampusTec Robert Radestock Michael Zerna

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

Web-Anwendungsentwicklung mit dem Delivery Server

01 Einführung in PHP. Einführung in PHP 1/13 PHP in Aktion

WebPoint. Ein Framework zur Erstellung von webbasierten Verkaufsanwendungen. Maria C. Raabe Daniel Woithe Vorlage: Torsten Walter. 16.

WebApp mit Node und Express

Java zur Realisierung von Internetanwendungen

2. Webapplikationen. Webzugang. Präsentation. Geschäftslogik. Browser. Datenhaltung. JSP, Servlets, ASP, PHP. HTML + JavaScript? +Java Applets?

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.

ASP: Active Server Pages

How-to. HTML An- und Abmeldeseite anlegen

CGI mit C Common Gateway Interface

Web-Anwendungen mit JavaServer Faces

Transkript:

Webanwendungen mit Java und JavaServerPages ohne JS und ohne Framework Michael Dienert 24. Februar 2016 Inhaltsverzeichnis 1 model2 mit Netbeans und tomcat 1 1.1 Projekt anlegen............................. 1 1.2 Controller-Servlet erzeugen....................... 1 1.3 View anlegen.............................. 1 1.4 Weiterleitung durch den Controller................... 2 1.5 Session-Objekt............................. 2 1.6 Controller vervollständigen....................... 3 1.7 Expression Language.......................... 4 1.8 JSTL................................... 4 1.9 foreach mit JSTL............................ 5 i

1 model2 mit Netbeans und tomcat 1.1 Projekt anlegen netbeans starten File-Menue New Project Java Web Web Application Server (tomcat oder glassfish), Java EE - Version und Kontext-Pfad wählen. Next Hier, für Schulprojekte bitte kein Framework wählen. Finish! 1.2 Controller-Servlet erzeugen Im Projects-Navigator (rechte Spalte): Mouse-Click-Rechts auf Projektnamen Projektname New Servlet Namen der Servlet-Klasse und unbedingt Package-Namen vergeben Next wenn gewünscht: Add Information to deployment descriptor (web.xml) Servlet Name so lassen wie Klassenname, URL-Pattern nach Wunsch. Das URL-Pattern wird auf dem Client wie ein Dateiname an den Context-Path gehängt. Der Server startet dann das entsprechende Servlet. Beispiel-URL: http://localhost:8084/adresssammler/controller/index.html Auszug web.xml: <servlet-mapping> <servlet-name>controller</servlet-name> <url-pattern>/controller</url-pattern> <url-pattern>/index.html</url-pattern> </servlet-mapping> In einer Webanwendung kann es mehrere Controller geben. 1.3 View anlegen Im Projects-Navigator (rechte Spalte): Mouse-Click-Rechts auf das Verzeichnis WEB-INF WEB-INF New Folder Dem neuen Verzeichnis den Namen view geben. Finish Nun werden eine oder mehrere JSP-Seiten in view erzeugt: 1

Rechtsklick auf view New other (ganz unten), dann File-Type JSP, Dateiname wählen, Finish tomcat ist ein in Java geschriebener Webserver, d.h. tomcat liefert Dateien aus, die über einen http-request angefordert werden. Direkt ausgeliefert werden aber keinesfalls Dateien, die im Verzeichnis WEB- INF stehen, das ist von aussen nicht zugänglich. D.h. die Dateien unserer View sind nicht direkt aufrufbar. Ausgeliefert werden können sie nur, über ein sog. Forwarding des Controller-Servlets. Was angezeigt wird, kann auf diese Weise vom Controller gesteuert werden. 1.4 Weiterleitung durch den Controller Code für das Weiterleiten auf Seiten innerhalb von WEB-INF/view String url = "/WEB-INF/view/formular.jsp"; ServletContext sc = getservletcontext(); RequestDispatcher rd = sc.getrequestdispatcher(url); rd.forward(request, response); Je nach User-Aktion, kann man später den Wert des url-strings beeinflussen und damit auf unterschiedliche Seiten weiterleiten. <%@page contenttype="text/html" pageencoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>jsp Seite mit Formular</title> </head> <body> <h1>jsp-seite mit Formular</h1> <h2>sage mir Deinen Namen und ich sage Dir, wie Du heisst:</h2> <form name="form" action="controller" method="get"> <table id="tabelle"> <tr> <td>vorname:</td> <td><input name="vorname" type="text" value="${person.vorname"/></td> </tr> <tr> <td>nachname:</td> <td><input name="nachname" type="text" value="${person.nachname" /></td> </tr> </table> <input type="hidden" name="action" value="refresh"/> <input type="submit" name="submit" value="hau Wech!"/> </form> <h2>du heisst ${person.vorname ${person.nachname!</h2> <form name="form" action="controller" method="get"> <input type="hidden" name="action" value="clear"/> <input style="visibility:${sichtbarkeit" type="submit" name="submit" value="einträge löschen"/> </form> </body> </html> 1.5 Session-Objekt tomcat verwaltet für jede http-sitzung eines Users ein sog. Session-Objekt Über z.b. Cookies oder URL-Rewriting kann tomcat ein Session-Objekt einem Nutzer auch über mehrere Seiten hinweg zuordnen. 2

Das session-objekt kann man sich wie einen Behälter vorstellen, in den man beliebige Objekte unter einem Schlüsselwort ablegen kann (ähnlich einer Hash- Map). Daten, die für alle Benutzer zusammen gespeichert werden sollen, können in einer gleichartigen Datenstruktur (ebenfalls ähnlich einer Hash-Map) im ServletContext- Objekt gespeichert werden. 1.6 Controller vervollständigen Der Quelltext des Controllers wird erweitert: Holen des Session-Objekts. Speichern beliebiger Daten im Session-Objekt. ggfs. Neuanlegen und Speichern eines model-objekts in der Session. Auslesen der QUERY_STRING oder POST-Daten und Bestimmung der Benutzer- Aktion. Fallunterscheidung je nach User-Aktion. Auslesen der QUERY_STRING oder POST-Daten und Zuweisung der Model- Attribute. Forwarding auf die nächste JSP-Seite. String url = "/error.jsp"; String action = request.getparameter("action"); if (action == null) { action = "NULL"; //session holen HttpSession session = request.getsession(); //attribut fuer sichtbarkeit einiger buttons in der view session.setattribute("sichtbar", new String("hidden")); //model im session-objekt ablegen Person person; person = (Person) session.getattribute("person"); if (person == null) { person = new Person(); session.setattribute("person", person); //servlet context holen ServletContext sc = getservletcontext(); AdressListe adrliste; adrliste = (AdressListe) sc.getattribute("liste"); if (adrliste == null) { adrliste = new AdressListe(); adrliste.setadressliste(new ArrayList<Person>()); sc.setattribute("liste", adrliste); 3

if (action.equals("refresh")) { url = "/WEB-INF/view/index.jsp"; person.setvorname(request.getparameter("vorname")); person.setnachname(request.getparameter("nachname")); session.setattribute("sichtbar", new String("visible")); else if (action.equals("checkout")) { url = "/WEB-INF/view/confirm.jsp"; adrliste.getadressliste().add(person); new JaxbMain(adrListe); else if (action.equals("neustart")) { url = "/WEB-INF/view/index.jsp"; person = new Person(); session.setattribute("sichtbar", new String("hidden")); session.setattribute("person", person); else { url = "/WEB-INF/view/index.jsp"; //ServletContext sc = getservletcontext(); RequestDispatcher rd = sc.getrequestdispatcher(url); rd.forward(request, response); 1.7 Expression Language Um Daten aus dem Model oder direkt Attribute des Session-Objekts (s.o.) in der View darzustellen, gibt es eine spezielle Syntax, die Expression Language. Möchte man z.b. das Attribut vorname des Models auf der JSP erscheinen lassen, kann man folgenden Ausdruck in der JSP verwenden:${person.vorname person ist dabei exakt der Name des Attributs in der Session vorname muss dabei zur Get-Methode getvorname im Model passen. 1.8 Expression Language Möchte man komplexere Datenstrukturen verwenden, wie z.b. so etwas: ${plan.besetzung.musiker.vorname muss man die verwendeten Klassen der JSP mit einer import-anweisung bekannt machen. <%@ page import="model2muster.gigplan" %> 1.9 JSTL JSTL steht für Java Server Pages Standard Tag Library Möchte man eine JSTL verwenden, muss sie der JSP bekannt gemacht werden: <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> Zwingend notwendig ist es dabei aber auch, die JSTL zu den Libraries des Netbeans-Projekts hinzuzufügen!! 4

Rechtsklick auf Libraries -> Add Library... -> JSTL 1.2.2 wählen. 1.10 foreach mit JSTL Mit der Expression Language können wir einzelne Attribute eines Models auf der JSP darstellen. Enthält das Model aber eine Sequenz von Daten (Liste, Set usw.), kann diese wie folgt ausgegeben werden: <c:foreach items="${plan.besetzung" var="musiker"> ${musiker<br/> </c:foreach> 5