Der Tomcat Web

Werbung
Tomcat Web-Server installieren

download von: http://www.apache.org
 Default-Installation vornehmen
 Server starten mit:
C:\tomcat\bin\startup.bat
 Server stoppen mit:
C:\tomcat\bin\shutdown.bat
Datenbanken 2 - Der Tomcat-Webserver und Java-Servlets - Prof. Dr. Böttcher - WS2000/01
HTML-Dokumente auf dem
Server speichern

Dokumente speichern in:
C:\tomcat\Webapps\Root
 z.B.: HTML-Dokument lokal speichern als
C:\tomcat\Webapps\Root\Start.html
 HTML-Dokumente ggf. editieren, z.B. mit
Netscape (Datei|Seite ändern) oder
anderem Editor
Datenbanken 2 - Der Tomcat-Webserver und Java-Servlets - Prof. Dr. Böttcher - WS2000/01
Tomcat Web-Server zugreifen





Im Browser Zugriff auf:
http://192.168.1.113:8080/Start.html
IP-Nummer eines laufenden Tomcat-Servers
Default-Port: 8080
Dokumentname (z.B. Start.html) eines
Dokuments im Root-Verzeichnis
C:\tomcat\Webapps\Root
Zugriff auf Dokumente in Unterverzeichnissen
des Root-Verzeichnisses über Pfade, z.B.
http://192.168.1.113:8080/abteilung1/Start.html
Datenbanken 2 - Der Tomcat-Webserver und Java-Servlets - Prof. Dr. Böttcher - WS2000/01
Übung:
Web-Server starten und zugreifen

Starten Sie Ihren Tomcat-Server :
C:\tomcat\bin\startup.bat
 Speichern Sie das HTML-Dokument einstieg.html
lokal als C:\tomcat\Webapps\Root\Start.html
 Ergänzen Sie Ihren Namen, bauen Sie Links zu
einer Seite auf einem anderen Server ein.
 Laden Sie Ihre Webseite in den Netscape-Browser
http://192.168.1.113:8080/Start.html
Datenbanken 2 - Der Tomcat-Webserver und Java-Servlets - Prof. Dr. Böttcher - WS2000/01
Überblick: Web-Server mit Servlets
Browser
auf dem Client
evtl. mit Eingaben
ruft
Web-Server
HTML-Seiten
evtl. Servlets
Erzeugt
HTMLSeite
Datenbanken 2 - Der Tomcat-Webserver und Java-Servlets - Prof. Dr. Böttcher - WS2000/01
Servlet : erstes Beispiel
Servlet-Ausgabe
IP-Nummer Port (8080)
des Web-Servers
Servlet-Verzeichnis
Servlet-Name
Datenbanken 2 - Der Tomcat-Webserver und Java-Servlets - Prof. Dr. Böttcher - WS2000/01
Was ist ein Servlet ?





(in Java geschriebene und compilierte)
Anwendung auf dem Server.
Wird vom Webserver automatisch gestartet.
Erzeugt eine neue Seite für den Client.
Wird auf dem Server gespeichert, z.B. in
C:\tomcat\webapps\Root\Web-Inf\classes
Kann Eingaben des Benutzers in HTML-Forms
verarbeiten.
Datenbanken 2 - Der Tomcat-Webserver und Java-Servlets - Prof. Dr. Böttcher - WS2000/01
Servlet-Code zum ersten Beispiel
import java.io.*; import javax.servlet.*; import javax.servlet.http.*;
public class Servlet1 extends HttpServlet
{ public void doGet ( HttpServletRequest req ,
HttpServletResponse res )
throws ServletException, IOException
{
res.setContentType("text/html");
PrintWriter aus = res.getWriter ( );
aus.println(“Herzlich willkommen in unserem Internetshop !");
}
}
Datenbanken 2 - Der Tomcat-Webserver und Java-Servlets - Prof. Dr. Böttcher - WS2000/01
Übung 2: Servlet übersetzen, auf dem
Web-Server ablegen und zugreifen

Arbeitsverzeichnis ist:
C:\tomcat\webapps\Root\Web-inf\classes
 Ergänzen Sie im Programm Servlet1.java
Ihren Namen
 Übersetzen Sie das Programm in der DOS-Box
mit:
C:\tomcat\...\classes> javac Servlet1.java
 Laden Sie das Servlet in den Netscape-Browser:
http://192.168.1.113:8080/servlet/Servlet1
Datenbanken 2 - Der Tomcat-Webserver und Java-Servlets - Prof. Dr. Böttcher - WS2000/01
HTML-Form-Beispiel
Submit-Knopf
Input-Feld
Webseite
Datenbanken 2 - Der Tomcat-Webserver und Java-Servlets - Prof. Dr. Böttcher - WS2000/01
HTML-Form





Teil eines HTML-Dokuments
Kann Eingaben des Benutzers verarbeiten.
Input-Felder für interaktive Eingabe des
Benutzers auf dem Client
Submit-Knopf (zum abschicken des
ausgefüllten Formulars)
Eingaben werden z.B. in Servlets verarbeitet
Datenbanken 2 - Der Tomcat-Webserver und Java-Servlets - Prof. Dr. Böttcher - WS2000/01
HTML-Form-Code-Beispiel
<html> <head> <title> Hallo Kunde, bitte identifizieren !
</title> </head>
<body>
<H3>Herzlich willkommen in unserem Internetshop.
Bitte geben Sie Ihren Namen ein ! </H3>
<form method=get action="servlet/KenntKunde">
<input type=text name="anrede"> <p>
<input type=submit value="Absenden">
</form>
</body> </html>
Datenbanken 2 - Der Tomcat-Webserver und Java-Servlets - Prof. Dr. Böttcher - WS2000/01
Servlet-Code zum Form Beispiel
import java.io.*; import javax.servlet.*; import javax.servlet.http.*;
public class KenntKunde extends HttpServlet
{ public void doGet ( HttpServletRequest req ,
HttpServletResponse res )
throws ServletException, IOException
{
res.setContentType("text/html");
PrintWriter aus = res.getWriter ();
String kunde = req.getParameter("anrede");
aus.println("Ihre Name ist: ");
aus.println( kunde );
}
}
Datenbanken 2 - Der Tomcat-Webserver und Java-Servlets - Prof. Dr. Böttcher - WS2000/01
Ausgabe des Servlets
Ausgabe
Servlet
Parameter
Datenbanken 2 - Der Tomcat-Webserver und Java-Servlets - Prof. Dr. Böttcher - WS2000/01
Alternative:
Servlet generiert HTML-Code
Datenbanken 2 - Der Tomcat-Webserver und Java-Servlets - Prof. Dr. Böttcher - WS2000/01
Servlet generiert HTML-Code
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class KenntKunde2 extends HttpServlet
{ public void doGet ( HttpServletRequest req , HttpServletResponse res )
throws ServletException, IOException
{ res.setContentType("text/html"); PrintWriter aus = res.getWriter ( );
String kunde = req.getParameter("anrede");
aus.println("<HTML><HEAD><TITLE>Willkommen</TITLE></HEAD><BODY>");
aus.println("<H3>Hallo <i>" + kunde + "</i>, willkommen in unserem
...!</H3>");
aus.println("<h3>In welchem Jahr sind Sie geboren, " + kunde +" ?</h3>" );
aus.println("<form method=get action=Rechnet>");
aus.println("<input type=text name=alter><p>");
aus.println("<input type=submit value=Absenden>");
aus.println("</form></BODY></HTML>");
}
}
Datenbanken 2 - Der Tomcat-Webserver und Java-Servlets - Prof. Dr. Böttcher - WS2000/01
Umwandlung von Strings in Zahlen /Ausnahmen
String s = tf.getText() ;
// String s aus TextField tf einlesen
Umwandlung nach int über Klasse Integer
try{
// try-Block wird ausgeführt, bis Ausnahme auftritt
// Ausnahme , falls s keine Ganzzahl enthält
int intwert = Integer.valueOf( s ).intValue() ;
} catch ( Exception e ) { System.out.println( “Fehler : “ + e ) ; }
Umwandlung nach double über Klasse Double
try{ // Ausnahme , falls s keine Komma-Zahl enthält
double doublewert = Double.valueOf( s ).doubleValue() ;
} catch ( Exception e ) { System.out.println( “Fehler : “ + e ) ; }
auffangen einer Ausnahme
Ausnahme-Behandlung
Datenbanken 2 - Der Tomcat-Webserver und Java-Servlets - Prof. Dr. Böttcher - WS2000/01
Ausgabe des Servlets Rechnet.class
Servlet
Parameter
Datenbanken 2 - Der Tomcat-Webserver und Java-Servlets - Prof. Dr. Böttcher - WS2000/01
Java-Code des Servlets: Rechnet.java
import java.io.*; import javax.servlet.*; import javax.servlet.http.*;
public class KenntKundeundRechnet extends HttpServlet
{ public void doGet ( HttpServletRequest req , HttpServletResponse res )
throws ServletException, IOException
{ res.setContentType("text/html");
PrintWriter aus = res.getWriter ();
String geburtsjahr = req.getParameter("alter");
int alter = 2001 - new Integer(geburtsjahr).intValue();
aus.println( "<HTML><HEAD><TITLE>Berechnet Alter des Kunden" +
"</TITLE></HEAD><BODY>" );
aus.println("<H3>2001 minus " + geburtsjahr + " sind " + alter + ".</H3><P>");
aus.println("Dann sind Sie also <b>" + alter + "</b> Jahre alt " +
"- oder werden es noch in diesem Jahr </BODY></HTML>");
}
}
Datenbanken 2 - Der Tomcat-Webserver und Java-Servlets - Prof. Dr. Böttcher - WS2000/01
Übung: Währungsumrechnung
Vorher:
Nachher:
Datenbanken 2 - Der Tomcat-Webserver und Java-Servlets - Prof. Dr. Böttcher - WS2000/01
HTML-Form-Passwort-Beispiel
Passwort-Felder für NICHT SICHTBARE interaktive
Eingabe des Benutzers.
Datenbanken 2 - Der Tomcat-Webserver und Java-Servlets - Prof. Dr. Böttcher - WS2000/01
HTML-Code zum Passwort-Beispiel
<html>
<head> <title>Hallo Kunde, Passwort bitte !</title> </head>
<body>
<H3>Herzlich willkommen in unserem Internetshop! </H3>
<p>
<form method=get action="servlet/KenntKunde2">
Benutzername: < input type=text name=“anrede“ ><p>
Passwort: < input type=password name=“code“ ><p>
< input type=submit value=“Absenden“ >
</form>
</body>
</html>
Datenbanken 2 - Der Tomcat-Webserver und Java-Servlets - Prof. Dr. Böttcher - WS2000/01
Servlet-Code zur Passwort-Abfrage

Passwort abfragen in Java
...
public void doGet ( HttpServletRequest req ,
HttpServletResponse res )
throws ServletException, IOException
{ ...
String passwort = req.getParameter(“code“);
if ( passwort.equals( “xy45!q%“ ) ) SeiteZeigen ( res ) ;
else
MeldungFalschesPasswort ( res ) ;
}
Seite generieren, je nachdem, ob Passwort o.K.
Datenbanken 2 - Der Tomcat-Webserver und Java-Servlets - Prof. Dr. Böttcher - WS2000/01
INPUT-Arten für HTML-Forms








Submit-Knopf zum Abschicken der Eingabe
Reset-Knopf zum Zurücksetzen der Eingabe
Image (wirkt wie Submit)
Checkbox
Radio-Button
Text : Feld zur sichtbaren Eingabe von Text
Passwort: Feld zur Eingabe von Passwörtern
NICHT SICHTBARE Hidden-Felder für
Sitzungsinformationen.
Datenbanken 2 - Der Tomcat-Webserver und Java-Servlets - Prof. Dr. Böttcher - WS2000/01
Sitzungen

Hidden-Felder werden benutzt, um
Informationen von einer Seite zur nächsten zu
tragen.
 Alternative 1: Alle bisher ausgetauschten
Daten werden im Hiddenfeld codiert.
 Alternative 2: Nur eine Session-Id wird im
Hiddenfeld codiert, der Rest wird serverseitig
gespeichert.
Datenbanken 2 - Der Tomcat-Webserver und Java-Servlets - Prof. Dr. Böttcher - WS2000/01
Servlets im Vergleich zu CGI
CGI = Common Gateway Interface , Vorläufer von Servlets
Vorteil von CGI: beliebige Sprache auf dem Server einsetzbar
Vorteile von Servlets (Nachteile von CGI):
Servlets können Threads verwenden => Servlets sind schneller
(Jeder Web-Zugriff startet CGI-Programm in einem neuen Prozeß)
Servlets sind portabel
(CGI-Programme nur, falls in Java geschrieben)
Servlets sind sicher
(Sicherheitsrisiken von CGI: „inkorrekte“ Benutzereingaben)
Datenbanken 2 - Der Tomcat-Webserver und Java-Servlets - Prof. Dr. Böttcher - WS2000/01
Herunterladen