Java
Inhaltsverzeichnis
Operatoren
IF THEN ELSE
Abkürzung für if-then-else: ?:
boolean-expression ? op1 : op2 ; Bedeutet: IF boolean-expression = true THEN op1 ELSE op2;
Wichtig: Diese Operation gibt ein Wert zurück! Also entweder op1 oder op2, je nach dem, ob die boolean-expression true oder false ist!
Also:
newOp = boolean-expression ? op1 : op2 ; Bedeutet: IF boolean-expression = true THEN newOp = op1 ELSE newOp = op2;
Schleifen
break und continue
In for-, while- und do-while-Schleifen können break und continue eingesetzt werden:
- break
- Der Schleifendurchlauf wird beendet und die Abarbeitung bei der ersten Anweisung nach der Schleife fortgeführt.
- continue
- Geht zum Schleifenkopf zurück. Nach dem Auswerten des Fortschaltausdrucks wird im nächsten Schritt erneut geprüft, ob die Schleife weiter durchlaufen werden soll.
Collections
Uebersicht
Eine Uebersicht über konkrete Container-Klassen findest du auf Galileocomputing JavaInsel 8 Kapitel 12.1.6.
Sorting
Zum sortieren muss ein Objekt Comparable
sein. Wenn das aber nicht geht (z.B. wenn man ein und dasselbe Objekt auf verschiedene
arten sortiert werden soll (ein Telefonbuch nach Nachname, Vorname, Ort, ...)), dann muss das anders gelöst werden.
Ein Beispiel:
/**
* UserSorter
*
* <p>
* Sort strategy to sort the User by field <code>name.
* </p>
*
* @author mic
*
*/
public class UserSorter
{
public List<User> sort(List<User> list)
{
// get comparator
Comparator<User> comparator = new NameComparator();
// sort list with configured comparator
Collections.sort(list, comparator);
return list;
}
}
/**
* NameComparator
*
* <p>
* Compare User field name
.
* </p>
*
* @author mic
*/
class NameComparator implements Comparator<User>
{
public int compare(User o1, User o2)
{
String s1 = o1.getName();
String s2 = o2.getName();
// both are null
if(s1 == null && s2 == null)
{
return 0;
}
// either of them is null
if(s1 == null)
{
return -1;
}
if(s2 == null)
{
return 1;
}
// compare strings
return s1.compareToIgnoreCase(s2);
}
}
Diverses
Java-VM-Args (kann z.B. in eclipse benutzt werden [eclipse.ini oder beim Starten von eclipse])
JavaDoc
Apache Config
web.xml
Web.xml ist die Konfigurationsdatei für den Servlet-Container.
- Element
- load-on-startup (optional)
- Wert
- Ganzzahl
- Beschreibung
- Definiert, dass das zugehörige Servlet beim Starten der Servers mit gestartet wird. Die Ganzzahl gibt die Reihenfolge an. Wenn <0, dann ist die Reihenfolge egal. Ab Servlet-Schema 2.4 darf load-on-startup nicht leer sein (<load-on-startup/>).
- Beispiel
- <load-on-startup>0</load-on-startup>
web.xml full details
web.xml: Deployment Descriptor
- web-app: Deployment Descriptor für die Webanwendung (root Element)
- icon: Icon für die Anzeige der Webanwendung in einem Entwicklungstool
- small-icon: 16x16 Pixel große GIF- oder JPG- Datei
- large-icon: 32x32 Pixel große GIF- oder JPG- Datei
- display-name: Name der Webanwendung
- description: Optionale Beschreibung der Webanwendung
- distributable: Gibt an, ob die Webanwendung so programmiert wurde, dass sie in einem verteilten Servlet-Container ausgeführt werden kann
- context-param: Zur Angabe von Startparametern für die Webanwendung. Können in der Webanwendung mit GetInitParameter und GetInitParameterNames abgefragt werden.
- param-name: Name des Parameters
- param-value: Wert des Parameters
- description: Beschreibung des Parameters
- filter: Filterkonfiguration
- icon: Icon für die Anzeige des Filters in einem Entwicklungstool
- small-icon: 16x16 Pixel große GIF- oder JPG- Datei
- large-icon: 32x32 Pixel große GIF- oder JPG- Datei
- filter-name: Name, unter dem das Filter an einer anderen Stelle im Deployment-Descriptor referenziert werden kann
- display-name: Name, unter dem das Filter in einem Entwicklungstool angezeigt wird.
- description: Beschreibung des Filters
- filter-class: Klassenname des Filters
- init-param: Initialisierungsparameter für das Filter
- param-name: Name des Parameters
- param-value: Wert des Parameters
- description: Beschreibung des Parameters
- icon: Icon für die Anzeige des Filters in einem Entwicklungstool
- filter-mapping: Filter-Abbildungen
- filter-name: Entspricht dem filter-name aus dem Abschnitt filter
- url-pattern: Wird das url-pattern in der Request-URL gefunden, so wird der Filter auf den Request angewandt
- servlet: Name des Servlets, an das der Filter den Request weiterleitet
- listener: Listener-Konfiguration
- listener-class: Name einer Klasse, deren Methoden bei bestimmten Events vom Servlet-Container aufgerufen werden.
- servlet: Servlet-Einstellungen
- icon: Icon für die Anzeige des Servlets in einem Entwicklungstool
- small-icon: 16x16 Pixel große GIF- oder JPG- Datei
- large-icon: 32x32 Pixel große GIF- oder JPG- Datei
- servlet-name: Name, unter dem das Servlet an einer anderen Stelle im Deployment-Descriptor referenziert werden kann
- display-name: Name, unter dem das Servlet in einem Entwicklungstool angezeigt wird.
- description: Beschreibung des Servlets
- servlet-class: Klassenname des Servlets
- jsp-file: Anstelle eines Servlets (servlet-class) kann auch eine JSP-Datei angegeben werden
- init-param: Initialisierungsparameter für das Servlet
- param-name: Name des Parameters
- param-value: Wert des Parameters
- description: Beschreibung des Parameters
- load-on-startup: Bestimmt die Reihenfolge, in der die Servlets vom Applikationsserver geladen werden. Positive, ganze Zahl, 1 wird zuerst geladen
- security-role-ref: Ermöglicht die Abbildung einer fest kodierten Sicherheitsrolle auf eine benutzerdefinierte Roll.
- icon: Icon für die Anzeige des Servlets in einem Entwicklungstool
- servlet-mapping: Bestimmt, welches Servlet bei einer URL aufgerufen wird
- servlet-name: Entspricht dem servlet-name aus dem Abschnitt servlet
- url-pattern: Wird das url-pattern in der Request-URL gefunden, so wird das zugeordnete Servlet aufgerufen
- mime-mapping: Verknüpft Dateierweiterungen mit MIME-Typen
- extension: Dateinamenserweiterung, z.B. txt
- mime-type: Mime-Typ, z.B. text/plain
- session-config: Session-Einstellungen
- session-timeout: Anzahl Minuten, nach denen die Session ungültig wird. Bei -1 läuft die Session nie ab.
- welcome-file-list: Liste mit Dateien, von denen die erste existierende angezeigt wird, falls der Benutzer im Browser nur das Context-Rootverzeichnis als URL angibt
- welcome-file: Name einer Datei, die Standardmäßig angezeigt werden soll, z.B. index.htm
- error-page: Definiert die Abbildung zwischen einem Fehlercode oder einem Exception-Typ und der URL einer Fehlerseite, die beim Auftreten des Fehlers angezeigt werden soll
- exception-type: Voll qualifizierter Klassenname einer Java-Exception
- error-code: HTTP Fehlercode, z.B. 404
- location: URL der Fehlerseite
- taglib: Zur Konfiguration von Taglibs
- taglib-uri: URI, die zum Einbinden der Taglib in einer JSP-Seite verwendet wird
- taglib-location: Pfad zur TLD-Datei relativ zum Context-Root der Webanwendung
- resource-ref: Ermöglicht es, externe Resourcen unter einem virtuellen Namen anzusprechen
- description: Beschreibung der Resource
- res-ref-name: Name der Resource im JNDI-Baum
- res-type: Java-Typ der Resource mit Package-Name
- res-auth: Bei APPLICATION ist die Anwendung für die Authorisierung zuständig, bei CONTAINER erledigt dies der Applikationsserver
- security-constraint: Zur Definition von Zugriffsbeschränkungen
- web-resource-collection: Komponenten der Webanwendung, auf die der Zugriff beschränkt werden soll
- web-resource-name: Name der Resourcenliste
- url-pattern: URL-Muster der Komponenten, die zu der Resourcenliste gehören
- auth-constraint: Benutzer mit den angegebenen Rollen haben Zugriff auf die Resourcen
- description: Beschreibung der Zugriffsbeschränkung
- role-name: Rollen, die Zugriff auf die Resourcen haben
- web-resource-collection: Komponenten der Webanwendung, auf die der Zugriff beschränkt werden soll
- login-config: Legt fest, wie die Benutzerauthentifizierung erfolgen soll
- auth-method: Authentifizierungsmethode BASIC - Authentifizierung durch den Browser FORM - Authentifizierung über ein Webformular CLIENT-CERT
- realm-name: Bereichsname
- security-role: Definition von Sicherheitsrollen
- description: Beschreibung der Sicherheitsrolle
- role-name: Name der Sicherheitsrolle
- env-entry: Zur Definition von Umgebungsvariablen
- description: Beschreibung der Umgebungsvariablen
- env-entry-name: Name der Umgebungsvariablen
- env-entry-type: Java-Typ der Umgebungsvariablen, java.lang.Boolean, String, Integer, Double, Float
- env-entry-value: Wert der Umgebungsvariablen
- ejb-ref: Referenz auf eine EJB-Resource
- ejb-ref-name: Name der EJB-Referenz, der in der Webanwendung benutzt wird
- ejb-ref-type: Java-Typ der referenzierten Enterprise Java Bean
- home: Voll qualifizierter Klassenname des EJB-Home-Interfaces
- remote: Voll qualifizierter Klassenname des EJB-Remote-Interfaces
- icon: Icon für die Anzeige der Webanwendung in einem Entwicklungstool
JSP
Interessante Links
Interfaces
Interfaces sind im Grunde genommen abstrakte Klassen, wo ALLE Methoden abstrakt sind. Das heisst, dass eine Implementierung
davon auch alle Methoden implementieren muss.
Auch Konstanten und Objekte (inkl. Instanzierung) können in Interfaces geschrieben werden. Beispiel:
public interface MyConstants { /** Constant 1 */ public static final String CTX_RUNTIME = "RUNTIME"; /** Constant 2 */ public static final String INDIV_ITEM = "INDIV_ITEM"; /** Objects */ // Auch neue Objekte sind möglich public static final Map<String, String> myMap = new HashMap<String, String>(10); ... }
Naming
Gängige Benennungen der Klassen und deren Bedeutung
- Factory
- Fabrik
- Wrapper
- Wandler