PPS-Design Eigener Homepage

Slides:



Advertisements
Ähnliche Präsentationen
Java-Servlets Gliederung: Allgemeine Informationen zu Servlets
Advertisements

Software Engineering Praktikum WS 2002/03
Java Beans von Raoul Schneider.
Kurze Einführung in ASP
Seminar Internetdienste Web 2.0 und Rich Internet Applications (RIA) JavaFX Rainer Scholz.
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
Tomcat Web-Server installieren
Java 2 Enterprise Edition (J2EE)
Ausnahmen HS Merseburg (FH) WS 06/07.
FH-Hof Servlets Richard Göbel. FH-Hof Konzept Servlets werden auf der Server-Seite durch ein Formular aufgerufen werten die Eingaben aus einem Formular.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Dynamische Webseiten Java servlets.
Programmieren mit JAVA
Vortrag - Kenny Schlör Applets Einführung in die Appletprogrammierung.
Packages Vortrag : Cornelia Hardt 23. November 1999.
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
DVG1 - Applets1 Applets. DVG1 - Applets2 Die Klasse Applet n Applets sind Grafikobjekte, die unter Steuerung eines anderen Programms (z.B. eines Browsers,
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Einführung in Java1 Einführung in JAVA.
DVG Klassen und Objekte
03 - Paint Das Zeichenprogramm EMMA Paint2 Aufgabenstellung Entwicklung eines ausschließlich in JAVA programmierten Graphikprogrammes. Vergleichsprodukte:
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Marcus Haller & René Schulze
FH-Hof HTML - Einführung Richard Göbel. FH-Hof Komponenten des World Wide Webs WWW Browser HyperText Transfer Protocol (HTTP) via Internet WWW Server.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Einführung Servlets/JSPs
Einführung in das Programmieren mit JavaScript Mag. Andreas Starzer weloveIT – EDV Dienstleistungen.
Erste Schritte mit Eclipse Neues Projekt erstellen (1)
AWT und JFC Abstract Windowing Toolkit
Java ohne Kara. Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen.
1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller.
Applets Java für’s Web.
PPS-Design einer eigenen WWW-Homepage SS 2003 Applets.
1 Sg 3 – JSP - Java Server Pages Softwareengineering Praktikum Java Server Pages Nicole Brandstätter Josef Sturm Karl Streicher.
IT2 – WS 2005/20061Oct 10, 2005 Externes Verhalten – Quelltext (source code) Durch Aufrufe der Konstruktoren und Methoden kann das externe Verhalten (=die.
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Seminar aus Softwareentwicklung: Inside Java and .NET
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
CGI (Common Gateway Interface)
Oliver Spritzendorfer Thomas Fekete
Einführung in PHP 5.
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
Learning By Doing Parallelverarbeitung Multithreading (Nebenläufigkeit) Alte Idee der Parallelverarbeitung statt rein sequentieller Prozesse Parallelverarbeitung.
Aufzeichnung von Usability-Daten im www. Client-Side Log : automatisch (maschinell) generiertes Protokoll Client : Rechner mit dem Browser des Users Server:
PI Burgenland Java und JavaScript 1. Teil
Java-Kurs Übung Benutzeroberflächen und Graphik
Übung Informatik I exercise01. 2 Inhaltsübersicht Nachbesprechung Übung 1 Individuelle Fragen/Bemerkungen.
TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.
Java-Kurs Übung Benutzeroberflächen und Graphik Frames (Fenster)
Java-Applets und URLs APP Philip Graf, Andreas Bößl.
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002Jochen Pfeiffer Seite.
Reflection API1 Motivation Reflection API Core Reflection API: java.lang.reflect Seit JDK 1.1 integraler Bestandteil der Java- Klassenbibliothek Ermöglicht:
Einführung in die OOP in Java
Das Internet Ein Netzwerk, das viele Rechner miteinander verbindet
Mobile Code Security Im Rahmen des Seminars Web Security Andreas Marx WIF
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 1 Beispiel class SpreadSheet { int cellA1, cellA2, cellA3; synchronized.
Java Programme nur ein bisschen objektorientiert.
Vortrag Einführung in AspectJ. Gliederung 1 Einleitung 2 Querschnittsfunktionalitäten in AspectJ 2.1 Sprachelemente 3 Beispiel 4 Join Point Modell 5 Weaving.
JAVA - Einführung. © Übersicht Hintergrund und Geschichte Wie sieht ein JAVA Programm aus ? Was ist ein JAVA Programm ? Wie schreibt/übersetzt.
Dynamische Webseiten CGI & co. © CGI - Lösung für alle ? Ja CGI kann alles tun, was man für Anwendungen braucht flexibel (beliebige.
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Synchronisation mit Monitoren Threads können in Java parallel ablaufen, oft.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Common Gateway Interface
„Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen.“
Java-Kurs Übung Grafik in Java - das Abstract Windowing Toolkit
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
Dynamisches Laden von Klassen
«Delegierter» Methoden Schablone Funktionszeiger
Tutorstunde 10.
Implementieren von Klassen
 Präsentation transkript:

PPS-Design Eigener Homepage 4. Praxisveranstaltung “Client Side Scripting: Java Applets”

Überblick Java Applets Architektur Einbettung des Applets in HTML Programmierung eines Applets Sicherheitsrisiken 2. JavaScript

Architektur OS Browser WebServer JVM Java Framework Java Applet HTML + Class Files HTTP-Request HTTP-Response (HTML + Applet) Applets sind Java Programme, die in Webseiten eingebunden werden können. Der Interpreter ist im Browser integriert

Einbettung des Applets in HTML Ein Applet wird mittels des applet-Tag in eine Webseite integriert: Beispiel einer Webseite mit Applet: <h1>Einfaches Applet</h1> <p>In diesem Test wird ein einfaches HelloWorld-Applet ausgeführt. <p><applet code=SimpleApplet.class width=500 height=100 alt="Cannot load applet”> No applet support. </applet> Classfile des Applets Dimensionen des Applets Alternativer Text, falls Browser Classfile nicht laden oder ausführen kann Alternativer Text, falls Browser applet Tag nicht versteht

Programmierung eines Applets Ein Applet ist eine Java-Klasse, die (direkt oder indirekt) von der Klasse java.applet.Applet abgeleitet ist. java.lang.Object - Zeichnungsfähigkeit (z.B. paint) - Behandlung von Ereignissen (z.B. mouseDown) java.awt.Component - Gruppierung von mehreren Graphikelementen innerhalb einer Komponente java.awt.Container java.awt.Panel java.applet.Applet - init, start, stop, destroy

Programmierung: SimpleApplet import java.applet.*; import java.awt.*; public class SimpleApplet extends Applet { private Font font; public void init() { font = new Font("Helvetica", Font.ITALIC,24); } public void paint(Graphics g) { g.setColor(Color.red); g.setFont(font); g.drawString("Hello world.", 25, 50);

Lebenszyklus eines Applets [1] = Laden des Applets [2] = Laden einer neuen Seite, Iconifizierung unbekannt [3] = Zurückkehren zu einer Seite, Deiconifizierung [1]: init() [4] = Verwerfen des Applets initialisiert [1]: start() [3]: start() gestoppt laufend [2]: stop() [4]: destroy() zerstört

Lebenszyklus eines Applets Der Browser ruft die folgenden Methoden auf: init: Um das Applet zu initialisieren, wenn es das erste Mal geladen wird (oder nach einem Reload) start: Um dem Applet anzuzeigen, dass es im Browser sichtbar ist (auch aufgerufen nach init) stop: Um dem Applet zu signalisieren, dass es im Browser nicht mehr sichtbar ist wegen Scrolling oder Seitenwechsels (auch aufgerufen vor destroy) destroy: Um das Applet wieder aus dem Browser zu laden (unloading) und Ressourcen wieder freizugeben

Zeichnen innerhalb eines Applets Ein Applet implementiert die Zeichnungsfunktionen in der paint Methode: class SimpleApplet extends Applet { ... public void paint(Graphics g) { g.setFont(“Helvetica”, Font.BOLD, 32); g.drawString(“my text”, x, y); } Wichtig: Die paint Method wird vom Browser aufgerufen und sollte nie direkt aufgerufen werden Um das Zeichnen des Applets zu forcieren, verwendet man die Methode repaint welche indirekt paint aufruft

Beispiel Applets SimpleApplet.java LifeCycle.java

Behandlung von Ereignissen Applets reagieren auf Ereignisse, indem sie den entsprechenden Event-Handler implementieren, z.B.: public class Scribble extends Applet implements MouseListener, MouseMotionListener { private int last_x=0, last_y=0, x=0, y=0; private Graphics g; ... public void init() { addMouseListener(this); addMouseMotionListener(this); g = getGraphics(); } public void mousePressed(MouseEvent event) { last_x = event.getX(); last_y = event.getY(); public void mouseDragged(MouseEvent event) { x = event.getX(); y = event.getY(); g.drawLine(last_x, last_y, x, y); last_x = x; last_y = y;

Parametrisierung von Applets Applets lassen sich durch Parameter im HTML-Code konfigurieren: <p><applet code=ParameterDemo.class width=500 height=100 alt="Cannot load applet"> <param name=text value="Irgendein Text."> No applet support. </applet> height=100 alt="Cannot load applet"> <param name=text value="Ein anderer Text."> <param name=background value=“FF0000”> <param name=foreground value=“FFFFFF”> No applet support.

Parameterübergabe an Applet Im HTML Code (ParameterDemo.html) benutzen wir unsere Parameter text, foreground und background Applet (ParameterDemo.java) kann die Parameter mit getParameter lesen: public void init() { font = new Font(“Helvetica”, Font.ITALIC, 24); text = getParameter(“text”); fgColor = getColorParameter(“foreground”, Color.black); bgColor = getColorParameter(“background”, Color.white); setForeground(fgColor); setBackground(bgColor); }

Sicherheitsrisiken Applets sind ein potentielles Sicherheitsrisiko, da Applets beliebigen Code enthalten können Potentielle Gefahren: Lokale Dateien lesen, modifizieren oder löschen Gefälschte E-Mails versenden Weitergabe von sensitiven Benutzerinformationen ... Daher: JVM, welche innerhalb des Browsers läuft, schränkt Möglichkeiten eines Applets ein

Einschränkungen für Applets Restriktionen für das lokale Filesystem: Keine Dateien lesen oder schreiben Keine Programme starten, keine Bibliotheken laden Prüfen auf die Existenz einer Datei ist nicht erlaubt Keine Verzeichnisse durchsuchen oder erzeugen Restriktionen für Netzwerkoperationen: Keine Netzwerkverbindungen aufbauen (ausser zum Rechner von dem Applet ursprünglich stammt) Restriktionen für Benutzerinformationen: Gewisse Benutzerinformationen lassen sich mit getProperty nicht lesen (user.name, user.home, user.dir)

Fähigkeiten eines Applets Applets, welche vom lokalen Filesystem geladen wurden (von Folder in CLASSPATH), besitzen normalerweise keine Restriktionen Netzwerkverbindungen zum Rechner, von welchem das Applet ursprünglich stammt, aufbauen. Audio Clip Dateien spielen: Beispiel 1 (HTML, Applet) Beispiel 2 (HTML, Applet) Public Methoden anderer Applets in der gleichen Webseite aufrufen

Exceptions bei unerlaubten Zugriffen Unerlaubte Zugriffe erzeugen Exceptions, z.B.: public void init() { … try { Properties p = System.getProperties(); msg1=“Name: ” +p.getProperty(“user.name”); msg2=“Home: ” +p.getProperty(“user.home”); } catch (Exception e) { msg1 = “Ouch: ” + e.getMessage(); msg2 = “”;

JavaScript Crossplatform, object-oriented language Besteht aus drei Mengen: Core set Server-side JavaScript (erweitert das core set mit server-side Funktionen) Client-side JavaScript: erweitert das core set und bietet Objekte an, mit den man einen Browser manipulieren kann. Unter dem Gebrauch von client-side JavaScript kann man auf user-input, wie z.B. mouse clicks, page navigation events und input in Formen, reagieren

Javascript Interpreter Architektur Browser OS WebServer Javascript Interpreter HTML Seite Script HTML+ Scripts HTTP-Request HTTP-Response (HTML mit embedded Script) Skripte werden embedded in der HTML Seite vom Webserver dem Browser geliefert und werden vom Browser‘s (darum client-side) JavaScript Interpreter exekutiert.

Einbettung von Scripts Man gebraucht das <SCRIPT> HTML Tag, um JavaScript code (statements,functions) einzubetten Man gebraucht JavaScript Event Handlers als HTML Attributen (z.B. in Forms) Man kann auch ein File mit JavaScript source file referenzieren. <HEAD><TITLE>A Simple Document</TITLE> <SCRIPT> function update(form) { alert("Form being updated") } </SCRIPT> </HEAD> <BODY> <FORM NAME="myform" ACTION="foo.cgi" METHOD="get" >Enter a value: <INPUT TYPE="text" NAME="text1" VALUE="" SIZE=20 > Check if you want: <INPUT TYPE="checkbox" NAME="Check1" CHECKED onClick="update(this.form)"> Option #1 <P> <INPUT TYPE="button" NAME="button1" VALUE="Press Me" onClick="update(this.form)"> </FORM> </BODY> . JavaScript Funktion Event Handlers

“Alltag” Gebrauch von JavaScipt Event Handling (Validierung, Animationen) Navigation (“Inter-Frame” Communication, Bearbeitung von mehreren Frames auf einmal, client-side image maps, cookies,status bar interaction) Javascript “Flavours”: JavaScript (Netscape) Jscript (Microsoft) ECMA-262 Specification

Referenzen Java Applets: http://java.sun.com/applets/ (resources) Java Tutorial : http://java.sun.com/docs/books/tutorial/index.html Java-World Artikel ueber Applet Security: http://www.javaworld.com/javaworld/jw-12-2000/jw-1215-security.html JavaScript: JavaScript Manual / Reference Client-Side Scripting and HTML (W3C)

Danke fuer Ihre Aufmerksamkeit ! Fragen