Suchen und Finden

Titel

Autor/Verlag

Inhaltsverzeichnis

Nur eBooks für mein Endgerät anzeigen:

 

Newsletter

J2EE Hotspots - Professionelle Lösungen für die Java-Entwicklung

J2EE Hotspots - Professionelle Lösungen für die Java-Entwicklung

von: Adam Bien, Rainer Sawitzki

Addison-Wesley Verlag, 2003

ISBN: 9783827319500, 296 Seiten

Format: PDF, OL

Mac OSX,Windows PC Apple iPad, Android Tablet PC's Online-Lesen für: Linux,Mac OSX,Windows PC

Preis: 19,95 EUR

Ersparnis: 20,00 EUR

  • Elfenkind
    Herbst - Läuterung
    Den Himmel gibt´s echt
    Herbst - Zerfall
    Der Bankräuber
    Bleib cool, Papa
    Du gibst das Leben
    Mein Herz kennt die Antwort
  • Kopfschuss
    Die Zehn Gebote
    Das Feenorakel
    Zeit der Vergebung
    Alphavampir
    Der Geschmack des Wassers
    Succubus Shadows
    Hurentaten
 

Mehr zum Inhalt

J2EE Hotspots - Professionelle Lösungen für die Java-Entwicklung


 

2.6 JavaServer Pages zur Konfiguration (S. 131-133)

2.6.1 Problemstellung

Wie können Konfigurationsdateien zentral auf dem Server administriert und für entfernte Anwendungen zur Verfügung gestellt werden?

2.6.2 Technischer Hintergrund

Für die Konfiguration von Anwendungen enthält das Java API eine Reihe von Hilfsklassen, die eine Vielzahl von Technologien benutzen. Neben einfachen Umgebungsvariablen (System.getProperty(…)) werden java.util.Properties und ResourceBundle sowie die neuen java.util.prefs.Preferences angeboten; J2EE-Komponenten lesen durch den JNDI-Kontext indirekt standardisierte Deskriptoren.

Java-Anwendungen verwenden natürlich keine der angeführten Klassen direkt. Es ist eine der ersten Aufgaben selbst des einfachsten Frameworks, einen Property Manager zu definieren, der die verwendeten Technologien kapselt. Es kommt damit nur noch darauf an, ein möglichst einfach administrierbares System aufzusetzen.

2.6.3 Lösung

Für eine zentrale Verwaltung von Properties bietet sich eine Datenbank-Tabelle an. Nachdem JDBC-Treiber jedoch nicht einfach Firewalls durchtunneln können und SQLAbfragen auch einen beträchtlichen Overhead erzeugen, wird auf dem Server eine JSP eingesetzt.

2.6.4 Praxis

Die JSP wird als J2EE-Komponente definiert und hat damit sofort Zugriff auf eine Data-Source. Die Konfigurationen werden einfach über ein Select-Statement erhalten:

<%MessageFormat format = new MessageFormat("{0}={1}");
InitialContext ctx = new InitialContext();
String tableName = (String)ctx.lookup("java:comp/env/tableName");
DataSource src = (DataSource)ctx.lookup("java:comp/env/jdbc/ConfigDB");
Connection con = src.getConnection();
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from " + tableName);
JspWriter writer = pageContext.getOut();
Object[] params = new Object[2];
while(rs.next()){
params[0] = rs.getObject(1);
params[1] = rs.getObject(2);
out.write(format.format(params));
out.write("");
}
%>
Der Zugriff darauf erfolgt über die URL der installierten JSP:

public class JSPPropertyManager implements PropertyManager {
private Properties props;
public JSPPropertyManager(URL pUrl) {
try {
props = new Properties();
BufferedInputStream bis =
new BufferedInputStream(pUrl.openStream());
props.load(bis);
}

public Object getProperty(String pPropertyName) throws
PropertyAccessException {
try {
return props.get(pPropertyName);
} catch (Exception e) {}

Die Key-Value-Paare der Konfiguration werden in diesem Beispiel beim Zugriff komplett auf den Client übertragen. Es spricht aber natürlich nichts dagegen, im Request die zu suchenden Schlüssel anzugeben und so die JSP als zentrale Read-Only Hashtable zu verwenden.

2.7 JavaServer Pages zur Erzeugung beliebiger Formate

2.7.1 Problemstellung

Kann eine JavaServer Page auch andere Formate als HTML generieren?

2.7.2 Technischer Hintergrund

Verteilte Anwendungen erhalten die Daten von einem Server in speziell aufbereiteter Form. RMI-Clients erwarten einfache Datentypen oder serialisierte Java-Objekte, Browser formatierte HTML-Dateien, SOAP-Clients XML-Daten usw. Ein komplettes Framework, das beliebig transformierte XML-Dokumente zur Verfügung stellt, ist Apache Cocoon (http://www.apache.org). Darin sind eine Menge von Ausgabeformaten unterstützt; das Spektrum reicht von (natürlich) HTML und XML über PDF, SVG etc. bis hin zu WML.

Für eigene spezielle Anforderungen können aber auch mit geringem Aufwand Java- Server Pages eingesetzt werden. JSPs sind bisher häufig nur im Einsatz, um komfortabel HTML-Seiten zu generieren. Diese Beschränkung ist aber nicht system-immanent! Eine JSP wird bekanntermaßen intern in ein Servlet umgewandelt, das eigentlich nichts anderes macht, als Daten in einen Ausgabestrom zu schreiben. Das Dateiformat bleibt vollkommen frei.