!!! Listing 1
import java.io.*;
import javax.servlet.*;
public class SimpleServlet extends GenericServlet {
public void service (ServletRequest req,
ServletResponse res)
throws ServletException, IOException
{
// hier werden die Anfragen behandelt
}
}
!!! Listing 2
import javax.servlet.http.*;
public class SimpleHttpServlet extends HttpServlet {
public void doPost (HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
// hier kann auf POST-Parameter reagiert werden
}
public void doGet (HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
// hier kann auf GET-Parameter
// reagiert werden
}
}
!!! Listing 3
!!! Listing 4
// test.cgi - das Servlet zum HTML-File
import javax.servlet.http.*;
import java.io.*;
public class SimpleHttpServlet extends HttpServlet {
public void doPost (HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException {
res.setContentType ("text/html");
PrintStream out = new PrintStream (res.getOutputStream ());
out.println ("");
out.println ("Ihr Name ist "+req.getParameter ("der_name"));
out.close ();
}
}
!!! Listing 5
Uhrzeit:
!!! Listing 6
// das Servlet, registriert als DateServlet
import java.io.*;
import javax.servlet.*;
import java.util.Date;
public class SimpleServlet extends GenericServlet {
public void service (ServletRequest req,
ServletResponse res)
throws ServletException, IOException {
PrintStream out = new PrintStream (res.getOutputStream ());
res.setContentType ("text/plain");
out.println ((new Date ()).toString ());
out.close ();
}
}
!!! Listing 7
Volle Datenbank-Abfrage
!!! Listing 8
Abfrage der Personen-DB
!!! Listing 9
/**
* Klasse, die die Informationen über eine Person aus der DB speichert
*/
public class Person {
private String vname, nname, strasse, plz, ort;
public Person (String vname, String nname,
String strasse, String plz, String ort) {
this.vname = vname;
this.nname = nname;
this.strasse = strasse;
this.plz = plz;
this.ort = ort;
}
public String getVName () { return vname; }
public String getNName () { return nname; }
public String getStrasse () { return strasse; }
public String getPLZ () { return plz; }
public String getOrt () { return ort; }
}
!!! Listing 10
package beispiel.db;
import java.sql.*;
import java.util.*;
import beispiel.Person;
/**
* Klasse, die eine ODBC-Datenbank via JDBC nach Personen abfragt
*/
public class DBAnbindung {
private Connection con = null;
public DBAnbindung (String connectString,
String driver,
String user,
String password)
throws SQLException, ClassNotFoundException {
Class.forName (driver);
con = DriverManager.getConnection (connectString, user, password);
}
public static void showSQLErrors (SQLException ex) {
while (ex != null) {
System.out.println ("SQLState: " + ex.getSQLState ());
System.out.println ("Message: " + ex.getMessage ());
System.out.println ("Vendor: " + ex.getErrorCode ()+"\n");
ex = ex.getNextException ();
}
}
public synchronized Person[] getPersonen (String vname,
String nname) throws SQLException {
Statement stmt = con.createStatement ();
ResultSet rs = stmt.executeQuery ("select vname,
nname, strasse, plz, ort from Personen where vname like
'%"+vname+"%' and nname like '%"+nname+"%'");
Vector personen = new Vector ();
while (rs.next ()) {
Person neuePerson = new Person (rs.getString (1), // vname
rs.getString (2), // nname
rs.getString (3), // strasse
rs.getString (4), // plz
rs.getString (5)); // ort
personen.addElement (neuePerson);
}
Person[] returnValues = new Person[personen.size ()];
for (int i = 0; i < personen.size (); i++)
returnValues[i] = (Person) personen.elementAt (i);
return returnValues;
}
protected void finalize () {
try {
if (con != null) con.close ();
} catch (SQLException ex) { DBAnbindung.showSQLErrors (ex); }
}
}
!!! Listing 11
package beispiel.servlet;
import java.io.*;
import java.sql.SQLException;
import javax.servlet.*;
import javax.servlet.http.*;
/**
* Klasse zum Anzeigen von Personendaten
* anhand eines Suchstrings für Vorname und Nachname
*/
public class PersonServlet extends HttpServlet {
private DBAnbindung db;
/**
* initialisiert DB-Verbindung beim Initialisieren
* Folgende Parameter müssen dabei dem Servlets übergeben werden:
* driver (Bsp.: sun.jdbc.odbc.JdbcOdbcDriver)
* connect_string (Bsp.: jdbc:odbc:Access)
* user, password
*/
public void init(ServletConfig conf) throws ServletException {
super.init (conf);
try {
db = new DBAnbindung (getInitParameter ("connect_string"),
getInitParameter ("driver"),
getInitParameter ("user"),
getInitParameter ("password"));
} catch (SQLException ex) {
DBAnbindung.showSQLErrors (ex);
throw new ServletException ("SQL-Fehler");
}
catch (ClassNotFoundException ex) {
System.err.println ("Klasse nicht gefunden.");
throw new ServletException ("Klasse nicht gefunden");
}
}
public void service (HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
// liefern wir mal den Beginn einer HTML-Seite
res.setContentType("text/html");
ServletOutputStream out = res.getOutputStream ();
out.println ("");
out.println ("Personen anzeigen");
out.println ("");
String nname = req.getParameter ("nname");
String vname = req.getParameter ("vname");
Person personen[] = null;
try {
if (db != null) personen = db.getPersonen (vname, nname);
else {
out.println ("");
}
} catch (SQLException ex) { DBAnbindung.showSQLErrors (ex); }
if ((personen != null) && (personen.length != 0)) {
out.println ("
");
out.println ("Vorname | Nachname | ");
out.println ("Strasse | PLZ | Ort |
");
for (int i = 0; i < personen.length; i++) {
out.println (" \n "+personen[i].getVName ()+" | ");
out.println (" "+personen[i].getNName ()+" | ");
out.println (" "+personen[i].getStrasse ()+" | ");
out.println (" "+personen[i].getPLZ ()+" | ");
out.println (" "+personen[i].getOrt ()+" | \n
");
}
out.println ("
");
} else out.println ("Keine entsprechenden Datensätze vorhanden.");
out.close ();
}
}