Datenbank im Internet - Beuth Hochschule für Technik Berlin

Werbung
Internet, Java, Datenbank
Internet , Java, Datenbank
1 Konzept
statische und dynamische Internetseiten mit Java
Applets, Servlets, Java Server Pages
2 Ablauf: Internet-Java-Datenbank
zwei jsp-Seiten (eine statisch, eine dynamisch)
die erste nimmt mit FORM die Parameter auf und sendet sie zum Server
die zweite empfängt die Variablen, verwendet sie im Programm (z.B. beim Datenbankzugriff),
empfängt die Reaktion der Datenbank, z.B. die Ergebnismenge, und erzeugt die Ausgabe
3 Beispiele
dynamisch
einfacher Datenbankzugriff
mit parametrisiertem Datenbankzugriff
mit gesamtem SQL-Befehl
Text und Datum
Pageaufruf
Deklaration, Berechnung und Ausgabe einer Variablen
HTML-Kommentare
versteckte Kommentare
Parameterweitergabe
Aufruf
4 JSP-Einzelheiten
Datentypen
Operatoren, Ausdrücke
Befehle
Parameteraustausch zwischen Seiten
Direktiven
Kommentare
5 Installation
JDK
Apache Tomcat
6 Servlets
7 Adressen der TFH
TFH Berlin/Steyer
Internet, Java, Datenbank
1 Konzept
Internet-Konzept
Statische und dynamische Internetseiten
Applets, Servlets, Java Server Pages
Datei
Java Server Page
Applet
Datenbank
Ein Programm (z.B. MwSt-Berechnung) kann auf verschiedenen Ebenen ausgeführt werden: im Formular,
im Serverprogramm, in der Datenbank.
Einbettung :
HTML-Code
HTML-Code
<%
Java-Quellcode
%>
auf dem Server
ausgeführte
Ergebnisse
auf dem Client
Es können eingebettet werden: Deklarationen, Ausdrücke, Befehle, Kommentare (s.u.)
Einbettungszeichen:
<%
für den Anfang
%>
für das Ende
TFH Berlin/Steyer
Internet, Java, Datenbank
2 Ablauf: Internet-Java-Datenbanl
Client
1
Server
2
5
3
Datenbank
1
2
3
4
5
Statische Seite mit Formular zum Client
Parameter und Aufruf zum Server zurück
Verarbeiten durch dynamische Seite und evtl. Datenbankzugriff
Ergebnisempfang und Erzeugung der Ergebnisseite
Rücksendung zum Client
TFH Berlin/Steyer
4
Internet, Java, Datenbank
3 Beispiele
3.1 Beispiel: dynamisch
bsp1.jsp:
<html>
<body>
<h1>Hello in verschiedener Grösse</h1>
<form method = "GET" action="http://localhost:8080/bsp1ex.jsp">
<input type = "submit" value="Zeige">
</form>
</body>
</html>
bsp1ex.jsp:
<%@ page errorPage="errorpge.jsp"
session="false" %>
<html>
<body>
<h4>Erstellt am <%= new java.util.Date().toLocaleString()%></h4>
<%int i=3;%>
<%while (i <= 7) {%>
<FONT SIZE=<%=i%>>Hello World</FONT><BR>
<%i++; }%>
</body>
</html>
3.2 Beispiel: einfacher Datenbankzugriff
db1.jsp:
<%@ page import="java.sql.*" %>
<html>
<body>
<h1 align="center">HALLO</h1>
<h4 align="center">Erstellt am
<%= new java.util.Date().toLocaleString()%></h4>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection c = DriverManager.getConnection("jdbc:odbc:accessdb","","");
Statement stmt = c.createStatement();
final String query = "Select pnr, pname from person";
ResultSet rs = stmt.executeQuery(query);
%>
<table border="1" bgcolor="#CCFFF">
<tr>
<% int i = 1;
while (rs.next()) {%>
<tr><td align="center"><%= i%></td>
<td><%= rs.getString(1)%></td>
<td><%= rs.getString(2)%></td>
</tr>
TFH Berlin/Steyer
Internet, Java, Datenbank
<% i++;} %>
</table>
<% rs.close();
c.close();
%>
</body>
</html>
3.3 Beispiel: parametrisierter Datenbankzugriff
bsp2.jsp:
<html>
<body>
<h1>Kontostand abfragen</h1>
<form method = "GET" action="http://localhost:8080/bsp2db.jsp">
Name:
<input type = "text" name = "us">
<br>
<br>
<input type = "submit" value="Kontostand">
</form>
</body>
</html>
bsp2db.jsp:
<%@ page errorPage="errorpge.jsp"
import="java.sql.*" session="false" %>
<html>
<body>
<h4 align="center">Erstellt am
<%= new java.util.Date().toLocaleString()%></h4>
<%String us = request.getParameter("us");%>
<h3>us=</h3>
<%=us%>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection c = DriverManager.getConnection("jdbc:odbc:accessdb","","");
Statement stmt = c.createStatement();
final String query = "Select kundenname, pin, kontostand from kunde where kundenname = \'" + us + "\'";
ResultSet rs = stmt.executeQuery(query);
%>
<table border="1" bgcolor="#CCFFF" cellpadding="3" cellspacing="0">
<% while (rs.next()) {%>
<tr><td><%= rs.getString(1)%></td>
<td><%= rs.getString(2)%></td>
<td><%= rs.getString(3)%></td>
</tr>
<%}%>
</table>
<% rs.close();
c.close();
%>
TFH Berlin/Steyer
Internet, Java, Datenbank
</body>
</html>
3.4 Beispiel: mit gesamtem SQL-Befehl
bsp3.jsp:
<html>
<body>
<h1>SQL-Befehl ausführen</h1>
<form method = "GET" action="http://localhost:8080/bsp3db.jsp">
<input type = "text" name = "bef" size=50>
<br><br>
<input type = "submit" value="ausführen">
</form>
</body>
</html>
bsp3db.jsp:
<%@ page errorPage="errorpge.jsp"
import="java.sql.*" session="false" %>
<html>
<body>
<h4 align="center">Erstellt am
<%= new java.util.Date().toLocaleString()%></h4>
<%String bef = request.getParameter("bef");%>
<h3>bef=</h3>
<%=bef%>
<% if (bef.indexOf("select") <= 0) { %>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection c = DriverManager.getConnection("jdbc:odbc:accessdb","","");
Statement stmt = c.createStatement();
ResultSet rs = stmt.executeQuery(bef);
ResultSetMetaData rsmd = rs.getMetaData();
int n = rsmd.getColumnCount();
%>
<h3>n=</h3>
<%=n%>
<table border="1" bgcolor="#CCFFF" cellpadding="3" cellspacing="0">
<% while (rs.next()) {%>
<tr>
<%int i=1;%>
<% while (i <= n) { %>
<td><%=rs.getString(i) %></td>
<%i++; }%>
</tr>
<%}%>
</table>
<% rs.close();
c.close();
} else {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection c = DriverManager.getConnection("jdbc:odbc:accessdb","","");
Statement stmt = c.createStatement();
TFH Berlin/Steyer
Internet, Java, Datenbank
stmt.execute(bef);
} %>
</body>
</html>
3.5 Beispiel: Text und Datum
<html>
<body>
<h1 align="center">HALLO</h1>
<h4 align="center">Erstellt am
<%= new java.util.Date().toString()%></h4>
</body>
</html>
3.6 Beispiel: Pageaufruf
datum.htm:
<html>
<body>
<h1>Kontostand abfragen</h1>
<form method = "POST" action="http://localhost:8080/dat.jsp">
<table>
<tr><td>Name:</td>
<td><input type = "text" name = "us"></td></tr>
<tr><td>PIN:</td>
<td><input type = "password" name = "pa"></td></tr>
</table>
<br>
<input type = "submit" value="Kontostand">
</form>
</body>
</html>
dat.jsp:
<font color="red">
Aktuelles Datum: <%@ include file="datum.jsp" %>
</font>
datum.jsp
<%@ page import="java.util.Date" %>
<%= (new java.util.Date()).toLocaleString() %>
TFH Berlin/Steyer
Internet, Java, Datenbank
3.7 Deklaration, Berechnung und Ausgabe einer Variablen
variable.jsp:
<html>
<body>
<% int i = 1;%>
<h3> i = </h3>
<%= i%>
<br>
<br>
<% i = i + 1;%>
<h3> jetzt i = </h3>
<%= i%>
</body>
</html>
3.8 HTML-Kommentare
<!-- comment [ <%= Ausdruck%> ] -–>
wird unverändert übernommen.
3.9 versteckte Kommentare
<%-- comment --%>
wird nicht in den HTML-Code aufgernommen.
3.10 Parameterweitergabe
mit zwei Seiten:
seite1.jsp
<html>
<body>
<h1>Parameter weitergeben</h1>
<form method = "GET" action="http://localhost:8080/seite2.jsp">
<tr><td>Name:</td><td><input type = "text" name = "us"></td></tr>
<br>
<input type = "submit" value="us-Weitergabe">
</form>
</body>
</html>
seite2.jsp
<html>
<body>
<%String us2 = request.getParameter("us");%>
<h3> us2 = </h3>
<%= us2 %>
</body>
</html>
TFH Berlin/Steyer
Internet, Java, Datenbank
mit einer Seite:
seite.jsp
<html>
<body>
<h1>Parameter weitergeben in einer Seite</h1>
<form method = "GET">
Name:<input type = "text" name = "us">
<br>
<input type = "submit" value="us-Weitergabe">
</form>
<%String us2 = request.getParameter("us");%>
<h3> us2 = </h3>
<%= us2 %>
</body>
</html>
3.11 Aufruf:
Tomcat starten
C:\Programme\Apache Group\Tomcat 4.1\webapps\ROOT\<pgm>
http:/localhost:8080/db1.jsp
Tomcat stoppen
TFH Berlin/Steyer
Internet, Java, Datenbank
4 JSP-Einzelheiten
Datentypen
Operatoren, Ausdrücke
Befehle
Parameteraustausch zwischen Seiten
Direktiven
Kommentare
5 Installation
JDK (Java Compiler), herunterladen von http://java.sun.com
Apache Tomcat (Webserver), herunterladen von http://Jakarta.Apache.org
Der Webserver muss vor jeder Benutzung gestartet werden.
JSP-Seiten mit Extension *.jsp müssen im Verzeichnis C:/Programme/Apache
Group/Tomcat/webapps/ROOT abgelegt werden. Dann werden sie von einem normalen Web-Browser
aufgerufen.
6 Servlets
7 Adressen der TFH
dbl97: 141.64.89.197
dbl98: 141.64.89.178
TFH Berlin/Steyer
Herunterladen