Überblick über Internet-Technologien Java Server Pages (JSP)

Werbung
Überblick über Internet-Technologien
Server-Technologien
Servlets
JSP
PHP
CGI
nur HTML
Datenbankkopplung
Client-PGM ruft DB-Server
Web-Server ruft Datenbankserver
nur HTML
HTML+Javascript
nur HTML
HTML+Applets
XML+XSL
Dokumentsprachen
Client-Technologien
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 1
Java Server Pages (JSP)
Bisher:
HTML - statische Seiteninhalte
php, ... - dynamische Seiteninhalte, nicht typsicher und portabel
Servlets - dynamische Seiteninhalte, typsicher und portabel ,
aber keine Trennung von Layout, Logik und Daten
Neu:
JSP
- dynamische Seiteninhalte, typsicher und portabel ,
etwas bessere Trennung von Layout, Logik und Daten
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 2
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
1
Java Server Pages (Beispielausgabe)
JSP-Verzeichnis
Layout (+konstanter Inhalt)
JSP-Seite
dynamischer Inhalt
Layout
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 3
JSP (Trennung von Design und Logik)
Eingabe
WebBrowser
Ausgabe
Client
JSP-Web-Server
JSP-Seite
.class-Files
Servlet (.java)
Web-Seite (html)
Java-Klasse(n)
WebDesigner
Programmierer
Server
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 4
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
2
Java Server Pages (JSP)
http://localhost:8080
/beispiel1/clock.jsp
JSP-Web-Server
clock.jsp
Web-Browser
.class-Files
Servlet (.java)
Willkommen in ...
Preisliste von
Mo. 22.Jan 21:55 ...
Web-Seite (html)
Clock.Java
Client
Server
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 5
Servlet-Code zum Form Beispiel
import java.io.*; import javax.servlet.*; import javax.servlet.http.*;
public class KenntKunde extends HttpServlet
{ public void doGet (
HttpServletRequest request ,
HttpServletResponse response )
throws ServletException, IOException
{
res.setContentType("text/html");
PrintWriter aus = response.getWriter ();
String kunde = request.getParameter("anrede");
aus.println("Ihre Name ist: ");
aus.println( kunde );
}
}
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 6
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
3
Java Server Pages (Beispiel 1)
<!-- clock0.jsp -->
<!-- Diese Java Server Page funktioniert
ohne eigenes Java-Programm -->
<html>
<body>
Die aktuelle Zeit ist
<%= new java.util.Date() %>
</body>
</html>
JSP Ausdruck
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 7
Java Server Pages (Beispiel 2)
JSP-Direktive
<-- clock.jsp -->
<%@ page language="java" %>
<jsp:useBean id="clock" class="Clock" />
JSP-Aktion
<HTML>
<H1>Willkommen in unserem Internetshop</H1>
<p> Preisliste von <%= clock.getDay() %> ist ...
</HTML>
JSP Ausdruck
import java.util.*;
public class Clock
{ public String getDay()
{
return " " + new Date() ; }
}
// Clock.Java
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 8
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
4
Java Server Pages (Beispiel 3)
<%@ page import="java.sql.*" language="java" %>
<!-- JSP Aktion: Instanziiere Klasse Shop / Konstruktoraufruf -->
<jsp:useBean id="shop" class="Shop"/>
Shop-Kontruktor erzeugt
DB-Verbindung
<%
ResultSet rsLiefert = null ;
<!-- Servlet-Request -->
String teil = request . getParameter("Teil");
<!-- JSP Skriptlet -->
if ( teil == null || teil.equals("") )
rsLiefert = shop . getLiefert();
else rsLiefert = shop . getLiefert(teil);
%>
<html> <body>
<form method="get" action="liefert2.jsp">
Teil: <input type="text" name="Teil" size="15">
<input type="submit" value="absenden">
</form> ...
<!-- Ausgabe des Resultsets als Tabelle -->
</body> </html>
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 9
JSP mit taglib
<HTML>
<-- beispiel1.jsp -->
<%@ taglib uri="/bsplib" prefix="jsplib" %>
<H1>Willkommen in unserem Internetshop</H1>
<P>Preisliste von <jsplib:getDay/> ist ... </P>
<jsplib:ifIs timeOfDay="PM"> Sonderangebot vor Ladenschluß ...
</jsplib:ifIs>
</HTML>
<taglib>
<tag>
// Ausschnitt aus bsplib.tld
<name>getDay</name>
<tagclass>beispiel1.GetDayTag</tagclass>
</tag>
<tag>
<name>ifIs</name>
<tagclass>beispiel.IfIsTag</tagclass>
<attribute>
<name>timeOfDay</name>
<required>true</required>
</attribute>
</tag>
</taglib>
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 10
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
5
Taglib - Datei
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib> <tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>bsplib</shortname>
<tag>
<name>getDay</name>
<tagclass>beispiel1.GetDayTag</tagclass>
</tag>
<tag>
<name>ifIs</name>
<tagclass>beispiel.IfIsTag</tagclass>
<attribute>
<name>timeOfDay</name>
<required>true</required>
</attribute>
</tag>
</taglib>
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 11
ASP
MicroSoft‘s Alternative zu JSP
• serverseitige Skriptsprache zur Generierung von HTML
• Mischung von HTML und Kontroll-Code (Schleifen, ...)
<% Code-Einbindung wie JSP-Skriptlet %>
• benutzt ASP-Komponenten (z.B. in Visual Basic) ,
generiert Objekte zu diesen Komponenten und
ruft für diese generierten Objekte Funktionen der Komponente auf
• Response für ASP–Ausgabe ( wie response –Variable bei JSP )
• spezielle Kommandos für Datenbankzugriff
• Einbettung verschiedener MS-Sprachen möglich, z.B. VB
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 12
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
6
ASP - Beispiel
<HTML>
<BODY>
<%
Dim obj
Set obj = Server.CreateObject("asp1.hallo")
Dim str
str = obj.halloWelt
Response.Write str
%>
</BODY>
</HTML>
Active Server Page
asp1.asp
’ tests new Development Web
Function halloWelt() As String
halloWelt = "Hello, World!"
End Function
Visual Basic
ASP Komponente
hallo.cls
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 13
PHP
Alternative zu JSP
• serverseitige Skriptsprache zur Generierung von HTML
• Mischung von HTML und Kontroll-Code (Schleifen, ...)
• spezielle Kommandos für Datenbankzugriff
• im Gegensatz zu JSP und ASP keine Komponenten
eher für kleinere Web-Applikationen
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 14
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
7
PHP-Beispiel
<html> <body> Eine Tabelle mit PHP ausgegeben
php-Einbettung
<?php
$db = mysql_connect("localhost", "root");
DB-Verbindung
mysql_select_db("mydb",$db);
$result = mysql_query("SELECT * FROM Auftrag",$db); Query
echo "<table border=1>\n";
HTML-Tabelle
echo "<tr><td>Name</td><td>Position</tr>\n";
while ($myrow = mysql_fetch_row($result))
ein Result lesen
{
printf( "<tr><td>%s</td><td>%s</td></tr>\n",
und ausgeben
$myrow[1], $myrow[2] );
}
echo "</table>\n";
eingebetteter HTML-Code
?>
</body> </html>
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 15
Extended Server Pages (XSP)
•
•
•
•
•
Trennung von Layout, Logik und Daten
Layout (.xsl-File)
Daten (.xml-File)
Logik (Java-Code gekapselt in XML)
Teil von cocoon
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 16
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
8
Überblick über Internet-Technologien
Server-Technologien
Servlet generiert HTML
JSP generiert HTML
PHP generiert HTML
CGI generiert HTML
Datenbankkopplung
Client-PGM ruft DB-Server
Web-Server ruft DB-Server
nur HTML
nur HTML
HTML+Javascript
nur HTML
HTML+Applets
XML+XSL
Dokumentsprachen
Client-Technologien
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 17
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
9
Herunterladen