Codebase, Hinweis:
Die Seiten "gewusst wie" geben Implemenmtierungsbeispiele für
verschiedene Aufgaben in unterschiedlichen Technoligien. Die
Beispiele sind zumeist wenig dokumentiert. Es soll hier kurz und
knapp die (eine) Umsetzung des Problems nahegelegt werden. Nähere
Informationen zu den verwendeten Codes finden sich im Netz :)
|
Java, JRE vs JDK, was sind die Unterschiede?
The "JDK" is the Java Development Kit. I.e., the JDK is bundle of software
that you can use to develop Java based software. The "JRE" is the Java Runtime
Environment. I.e., the JRE is an implementation of the Java Virtual Machine
which actually executes Java programs.
Typically, each JDK contains one (or more) JRE's along with the various
development tools like the Java source compilers, bundling and deployment
tools, debuggers, development libraries, etc.
Yes JRE is Java Run Time Environment. The java programming language adds the
portability by converting the source code to byte code version which can be
interpreted by the JRE and gets converted to the platform specific executable
ones. Thus for different platforms one has corresponding implementation of
JRE. But JRE has to meet the specification JVM (Java Virtual Machine) Concept
that serves as a link between the Java libraries and the platform specific
implementation of JRE. Thus JVM helps in the abstraction of inner implementation
from the programmers who make use of libraries for their programmes.
The JDK(Java Developmental Tool kit) comes along with java libraries
and JVM embedded in it. Apart from these it comes along with the utility
tools for byte code compilation "javac", Executing the byte codes through
java programmes through "java" and many more utilities found in the binary
directory of java. Speaking practically JDK is essential for developers,
which comes along with library packages to develop Software programmes.
While JRE is minimal set of programmes which executes the java class
files developed by the software developers.
|
Java / Java Server Fces/ Java Server Pages
|
|
1--> Java, Browser und files aus Java oeffnen
2--> Castings
3--> [Datum formatieren
4--> Variablen aus dem Facescontext auslesen
5--> Hashmap mit Iterator durchlaufen und keys und values listen
6--> Hashmap, simples Beispiel
7--> instanceOf ... kurzes Beispiel zur Verwendung
8--> interface implementieren:
9--> int auf integer casten
10--> Quellcode aus Javaklassen generieren, class-files in java-files
11--> Java, String nach Sonderzeichen splitten, Sonderzeichen escapen
12--> Java, Propertyfiles laden
13--> Java Prüfen ob ein Verzeichnis existiert
14--> Java, Datei(en) löschen
15--> Java, InetAddress: IP und Hostname ermitteln
16--> Java Log4J einfach
17--> LRU-Cache in Java
18--> Java, Maven: Dependencies in POM
19--> Java Maven abhängiges Projekt compipieren und als zip bereitstellen, maven-assembly-plugin
20--> Java, Maven: Ressourcen automatisch zu Projekten hinzufügen
21--> Java Server programmieren, java.net.ServerSocket
22--> Java, Beispiel für SimpleDateFormat
23--> Singeltons in Java
24--> Java, Xml via Jdom.saxbuilder appenden
25--> javascript, Elemente ein/ ausblenden
26--> Javascript, aus iframe heraus Text des Hauptframes ausblenden
27--> jsp, Ausgabe einer Arraylist aus Bean in jsp durch forEach - Tag
28--> jsp, Klassen in jsp-files importieren
29--> jsp, Requestparameter auswerten/ ausgeben
30--> jsp: hostname und ip
31--> JSP, Formularbutton mit Werten aus Messagefile beschriften
32--> JSP, Messagebundles
33--> voneinander abhängige selectboxen
34--> Java/JSF Links
35--> Map iterieren, Key Value Paare auslesen
36--> mehrere Servlets in einer Web Applikation handeln
37--> runden auf exakt 2 Nachkommastellen
38--> Variablen aus Sessionmap auslesen
39--> Sonderzeichen (ü,ä,ö,ß...) für propertyfiles messages.de / messages.en
40--> Switch / Case Anweisung
41--> typisiertes Array anhand der aktuellen belegung eines Typ-Properties sortieren
42--> Variablen-Initialisierung mit variabler sowie fest vorgeschriebener Reihenfolge
43--> Xml via JDom schreiben, einfaches Beispiel
44--> Namespace- Deklaration in XML einfügen, JDom
45--> XML-Datei schreiben mittels JDOM
____ ____ ____ ____ ____ ____ ____ ____ ____
1--> Java, Browser und files aus Java oeffnen
Am Beispiel aus einer jsp:
____________________________666Seitenanfang666_____________________________
2--> Castings
INT TO STRING:
String requestIdString =
Integer.toString(this.requestId);
Java - Converting int to string
String myString = Integer.toString(my int value)
*or*
String str = "" + i
Java - Converting String to int
int i = Integer.parseInt(str);
*or*
int i = Integer.valueOf(str).intValue();
*/double/**/ to String :/** *
String str = Double.toString(i);
*/long/**/ to String :/** *
String str = Long.toString(l);
*/float/**/ to String :/** *
String str = Float.toString(f);
*/String to double :/*
double d = Double.valueOf(str).doubleValue();
*/String to long :/** *
long l = Long.valueOf(str).longValue();
*or*
long l = Long.parseLong(str);
*/String to float :/** *
float f = Float.valueOf(str).floatValue();
*/decimal/**/ to binary :/** *
int i = 42;
String binstr = Integer.toBinaryString(i);
*/decimal/**/ to hexadecimal :/** *
int i = 42;
String hexstr = Integer.toString(i, 16);
*or*
String hexstr = Integer.toHexString(i);
*or** (with leading zeroes and uppercase)*
*/hexadecimal/**/ (String) to integer :/** *
int i = Integer.valueOf("B8DA3", 16).intValue();
*or*
int i = Integer.parseInt("B8DA3", 16);
*/ASCII code to String/** *
int i = 64;
String aChar = new Character((char)i).toString();
*/integer/**/ to ASCII code (byte)/** *
char c = 'A';
int i = (int) c; // i will have the value 65 decimal
*/integer/**/ to boolean/** *
b = (i != 0);
*/boolean/**/ to integer/** *
i = (b)?1:0;
____________________________666Seitenanfang666_____________________________
3--> [Datum formatieren
public String getModifiedStartTime
(Date oStartTime) {
String result = "";
java.text.SimpleDateFormat sdfTo = new
java.text.SimpleDateFormat("HH:mm");
result = sdfTo.format(oStartTime);
return result;
}
____________________________666Seitenanfang666_____________________________
4--> Variablen aus dem Facescontext auslesen
BEAN:
public String testmethod() {
String a = "";
ExternalContext extCont =
FacesContext.getCurrentInstance().getExternalContext();
Object b = FacesContext.getCurrentInstance().getExternalContext()
.getRequestParameterMap().get("editId");
String meineId =
FacesContext.getCurrentInstance().getExternalContext()
.getRequestParameterMap().get("editId").toString();
System.out.println(meineId);
return a;
}
IN JSF:
HINWEIS:
h:commandButton just not supports f:param. h:commandLink and any of
a4j:command supports.
____________________________666Seitenanfang666_____________________________
5--> Hashmap mit Iterator durchlaufen und keys und values listen
____________________________666Seitenanfang666_____________________________
6--> Hashmap, simples Beispiel
INHALT
____________________________666Seitenanfang666_____________________________
7--> instanceOf ... kurzes Beispiel zur Verwendung
INHALT
____________________________666Seitenanfang666_____________________________
8--> interface implementieren:
BEAN:
public class BigBean {
...
public DeathCertificateInterface getDeathCertificateInterface() {
return deathCertificate;
}
...
}
public class DeathCertificate implements DeathCertificateInterface{
...
public void addCauseOfDeath(boolean usePropertyfile, String causeOfDeath) {
...
}
...
}
public interface DeathCertificateInterface {
...
public void addCauseOfDeath(boolean useMessageInPropertyfiile, String
causeOfDeath);
....
}
In irgendeiner Javaklasse:
...
bigBean.getDeathCertificateInterface().addCauseOfDeath([parameters]));
...
____________________________666Seitenanfang666_____________________________
9--> int auf integer casten
INHALT
____________________________666Seitenanfang666_____________________________
10--> Quellcode aus Javaklassen generieren, class-files in java-files
Um aus kompilierten Java-Klassen (.class) den Quellcode zu generieren (.java)
kann man einen Java-Dekompilierer verwenden. Eine Freeware-Lösung findet sich
beispielsweise unter
http://java.decompiler.free.fr/?q=jdgui. Allerdings ist das dekompilieren immer ein
wenig mit Vorsicht zu geniessen. Bei mir hat der generierte Javacode an einigen Stellen
Fehler aufgewiesen. Vor allem beim Exceptionghandling der einzelnen Klassenmethoden
haben sich öfters Fehler eingeschlichen.
____________________________666Seitenanfang666_____________________________
11--> Java, String nach Sonderzeichen splitten, Sonderzeichen escapen
____________________________666Seitenanfang666_____________________________
12--> Java, Propertyfiles laden
Um Konfigurationsdaten der Applikation zu Verwalten bieten
sich Prpoertyfiles an. Diese haben den Vorteil, das man das
Verhalten der Applikation schnell und einfach durch die Einträge
eines solchen Propertyfiles, eines simplen Textfiles, steuern kann.
Es ist somit nicht notwendig den Javacode anzupassen.
____________________________666Seitenanfang666_____________________________
13--> Java Prüfen ob ein Verzeichnis existiert
Eine Javaanwendung mit einem Aufrufparameter (ein Verzeichnisname) starten und
prüfen ob dieses Verzeichnis existiert.
____________________________666Seitenanfang666_____________________________
14--> Java, Datei(en) löschen
Eine Datei via Java löschen:
Alle Dateien mit einer spezifischen Dateiendung löschen:
____________________________666Seitenanfang666_____________________________
15--> Java, InetAddress: IP und Hostname ermitteln
IP und Hostname ermitteln
____________________________666Seitenanfang666_____________________________
16--> Java Log4J einfach
Ein einfaches Beispiel zur Nutzung von Log4J (Logging)
Weitere Informationen findet man unter folgender url:
http://www.torsten-horn.de/techdocs/java-log4j.htm
____________________________666Seitenanfang666_____________________________
17--> LRU-Cache in Java
Caches dienen in der Informatik als Methode, Zugriffe auf bestimmte Daten zu beschleunigen, in dem diese vorgelagert/gepuffert werden. Sie sind in verschiedensten Bereichen zu finden, unter anderem auf Prozessoren, in Festplatten, aber auch in Technologien wie dem Web. Verschiedene Verdrängungsstrategien ermöglichen es, die beschränkte Kapazität eines Caches zu berücksichtigen, so dass nur wichtige Werte im Cache gelagert werden. Least Recently Used (LRU), ist eine solche Strategie, die häufig angewandt wird. Sie sortiert die Werte im Cache nach der letzten Nutzung. Wird auf ein Element über einen längeren Zeitraum nicht mehr zugegriffen, so wird es aus dem Cache verdrängt.
In Java lässt sich ein solcher LRU-Cache besonders einfach implementieren, da die Klasse java.util.LinkedHashMap bereits die wesentlichen Mechanismen unterstützt. Eine HashMap ist eine Hash-Tabelle, die Zugriffe auf Werte über ihre Schlüssel regelt. Zusätzlich verkettet die LinkedHashMap aber die Werte noch in einer Liste, womit auch eine Traversierung in Einfügereihenfolge ermöglicht wird. Mithilfe eines Flags in einem der Konstruktoren kann dieses Verhalten geändert werden, so dass bei jedem Zugriff das angesprochene Element neu in diese Liste eingereiht wird. Damit verwaltet die Liste die Zugriffe und ist Basis für die LRU-Strategie.
Die Methode removeEldestEntry() der LinkedHashMap wird bei jedem Schreibezugriff auf die Map, also nach Einfügeoperationen über put() oder putAll() automatisch aufgerufen und bietet die Möglichkeit, durch Überschreiben der Methode die Verdrängungsstrategie zu implementieren. Diese Methode gibt ein boolean zurück, ob der älteste Eintrag gelöscht werden soll. Es ist auch möglich, innerhalb der Methode selbst die Liste zu manipulieren, dann sollte allerdings die Methode immer false zurückgeben. Für den LRU-Cache reicht es aus, die Größe der Map mit dem gewünschten Maximum zu vergleichen. Ist der Inhalt der Map zu groß, so soll das letzte Element gelöscht werden.
Im Folgenden nun der Code dazu. Zu beachten ist noch, dass es sich um eine threadsichere Klasse handelt, da die Map explizit synchronisiert wird.
INHALT
____________________________666Seitenanfang666_____________________________
18--> Java, Maven: Dependencies in POM
Denpendencies in der Pom deklarieren:
JSTL Dependency
Taglibs Dependency
____________________________666Seitenanfang666_____________________________
19--> Java Maven abhängiges Projekt compipieren und als zip bereitstellen, maven-assembly-plugin
Maven: Alle Bibliotheken eines projektes in zip packen.
Ausgangspunkt sind 2 Maven Projekte, wobei das Projekt 1
von Projekt 2 verwendet wird. Somit ist in die pom.xml
von Projekt 2 das Projekt 1 als Dependency anzugeben.
Nun soll Projekt 2 compiliert werden und alle benötigten Bibliotheken in einem
Archiv zur Verfügung stehen. Dieses Archiv soll natürlich ebenfalls die Bibliotheken
von Projekt 1 beinhalten, da ja Projekt 1 von Projekt 2 verwendet wird.
Um die Abhängigkeiten der Projekte zu erreichen wird die
Pom des Projektes 2 wie folgt erweitert:
Die Konfiguration des zu erstellenden Archivs mit allen Bibliotheken erfolgt
in dep.xml, welche in der oben angeführten POM eingetragen ist:
____________________________666Seitenanfang666_____________________________
20--> Java, Maven: Ressourcen automatisch zu Projekten hinzufügen
Ressourcen definieren, die beim Kompilieren automaisch mit
in das Projekt (jar, whatever) eingefügt werden sollen. Hierfür
muss lediglich in der POM ein entsprechender eintrag unter ressources
getätigt werden.
____________________________666Seitenanfang666_____________________________
21--> Java Server programmieren, java.net.ServerSocket
Im Eclipse: neues Java-Projekt anlegen und dann unter „src“ die Server.java kopieren.
Anschließend einfach aus dem Eclipse als Java-Anwendung starten.
Den Port kann man im Quelltext konfigurieren.
____________________________666Seitenanfang666_____________________________
22--> Java, Beispiel für SimpleDateFormat
Schnell & einfach Datum mit SimpleDateFormat erzeugen
____________________________666Seitenanfang666_____________________________
23--> Singeltons in Java
Umsetzung des DesignPatterns Singelton in Java.
____________________________666Seitenanfang666_____________________________
24--> Java, Xml via Jdom.saxbuilder appenden
INHALT
____________________________666Seitenanfang666_____________________________
25--> javascript, Elemente ein/ ausblenden
|