WordPress Template erstellen

Für die Erstellung eines WordPress-Templates braucht man nur zwei Dateien. Eine index.php und eine kommentierte style.css sind völlig ausreichend, sofern diese beide Dateien in einem gemeinsamen Unterordner von „wp-content/themes“ liegen.

WordPress stellt für die Gestaltung von Templates unzählige [post id=“369″]Variablen und Template Tags[/post] zur Verfügung. Es können auch noch weitaus mehr Dateien als die index.php und style.css verwendet werden. Wer sich dafür interessiert, der sollte sich unbedingt mal die WordPress Template Hierarchie anschauen.

Ein sehr gutes Beispiel ist das mit WordPress mitgelieferte Twenty Ten-Design, welches viele Template-Funktionalitäten benutzt. Für Einsteiger ist das Twenty Ten-Template jedoch etwas zu komplex, weshalb ich euch mal eine von mir erstellte Vorlage zeigen möchte.
WordPress Template erstellen weiterlesen

Was macht die main Methode in Java?

Eine berechtigte Frage vieler Java-Neulinge ist: „Was macht die main-Methode in Java?„. Zum einen ist die main-Methode der Haupteinstiegspunkt der Anwendung (dort, wo es losgeht) und zum anderen ist die main-Methode in der Lage externe Parameter entgegen zu nehmen. Undzwar können aus *.java-Dateien ausführbare *.jar-Dateien erzeugt werden. Solche Dateien können dann von jedem System, das über eine JRE (Java Runtime Environment) verfügt, ausgefüht werden.
Was macht die main Methode in Java? weiterlesen

JUnit Beispiel

Für alle, die noch nie mit dem JUnit-Testframework gearbeitet haben, habe ich mal eine Testklasse geschrieben, die eine beispielhafte Klasse testet.

Mit NetBeans lassen sich JUnit-Vorlagen ganz einfach erstellen, indem man einen Rechtsklick auf sein Projekt macht und dann „New“ -> „Other“ -> „JUnit“ auswählt. Die daraufhin im Wizard erstellten Testklassen befinden sich dann in „Test Packages“.
JUnit Beispiel weiterlesen

Java HashMap Beispiel

Ein Beispiel für das Durchlaufen einer HashMap in Java:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import java.util.HashMap;
 
public class HashMapExample
{
    public static void main(String[] args)
    {
        HashMap<String,Double> myHashMap = new HashMap<String,Double>();
 
	// HashMap durchlaufen
        for(String key : myHashMap.keySet())
        {
            System.out.println("Key: "+key);
            System.out.println("Value: "+myHashMap.get(key));
        }
 
	// Exemplarisches Einfügen:
        Double myDouble = myHashMap.get("Dagobert");
 
        if(myDouble != null)
        {
            System.out.println("Es gibt einen Double-Wert, 
            welcher unter dem Key 'Dagobert' abgelegt ist.");
        }
        else
        {
	    /* Es gibt keinen Wert für den Key 'Dagobert',
            also fügen wir den Double-Wert '100.00' für diesen Key ein. */
            myHashMap.put("Dagobert", 100.00);
        }
    }
}

Beispiel für Spring Security Konfiguration

Die folgenden Code-Schnipsel sollen beim Einstieg in die Konfiguration von Spring Security helfen. Durch die Beispiel-Konfiguration wird die Benutzer-Authentifikation über eine MySQL-Datenbank abgewickelt. Für weitere Informationen empfehle ich den „5 Minute Guide to Spring Security„.

Weitere hilfreiche Links:
Spring Security – FAQ

Beispiel für Spring Security Konfiguration weiterlesen

Java Server Pages – Beispiel

Es folgt ein Beispiel zur Erstellung einer Java Server Page (kurz JSP).

Die Java Server Page wird durch ein Servlet (im Beispiel NewServlet.java) aufgerufen. Daher muss im Webbrowser auch die Adresse des Servlets eingegeben werden. Als Parameter wird dabei das gewünschte Command mit einer dazugehörigen Action ausgeführt.

Im Beispielaufruf heißt das Command „cmd“ und die Action „actionman“:
http://localhost:8080/Projekt/servlet?do=actionman

Quellcode:

Projektname > „Source Packages“ > controller.web > NewServlet.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package controller.web;
 
import java.util.HashMap;
 
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
 
@WebServlet(name="NewServlet", urlPatterns={"/servlet"})
public class NewServlet extends HttpServletControllerBase
{
    public void init(ServletConfig conf) throws ServletException
    {
        HttpRequestActionBase action = null;
        actions = new HashMap();
 
        // Action: Möglicher Wert (Value) für einen Steuerbefehl (Command)
        action = new MyAction();
        actions.put("actionman", action);
 
        // Weitere "action" erstellen und "actions" hinzufügen...
    }
 
    protected String getOperation(HttpServletRequest req)
    {
        // Command: Steuerbefehl
        return req.getParameter("do");
    }
}

Projektname > „Source Packages“ > controller.web > MyAction.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package controller.web;
 
import java.io.IOException;
import javax.servlet.RequestDispatcher;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
public class MyAction extends HttpRequestActionBase
{
    public void perform(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException
    {
        try
        {
            String strTemp = "Willkommen auf der JSP-Seite.";
            req.setAttribute("willkommen", strTemp);
            RequestDispatcher reqDisp = req.getRequestDispatcher("showaction.jsp");
            reqDisp.forward(req, resp);
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}

Projektname > „Web Pages“ > showaction.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
 
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <!-- Variante 1 -->
        <h1><%=request.getAttribute("willkommen")%></h1>
        <!-- Variante 2 -->
        <h1>${hallo}</h1>
    </body>
</html>

Benötigte Ressourcen:
Projektname > „Source Packages“ > controller.web > HttpServletControllerBase.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package controller.web;
 
import java.io.IOException;
import java.util.HashMap;
 
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
public abstract class HttpServletControllerBase extends HttpServlet
{
	protected HashMap actions;
 
	public void init(ServletConfig conf) throws ServletException
        {
            HttpRequestActionBase action = null;
            actions = new HashMap();
	}
 
	public void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws IOException, ServletException
        {
	    String op = getOperation(req);
	    HttpRequestActionBase action = (HttpRequestActionBase)actions.get(op);
	    action.perform(req, resp);
	}
 
	public void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws IOException, ServletException
        {
 
	    // Zunaechst wird die URL analysiert,
            // um die Operation, die ausgefueht werden soll zu bestimmen
	    String op = getOperation(req);
	    // dann wird die entsprechende Aktion aus der Map geholt ...
	    HttpRequestActionBase action = (HttpRequestActionBase)actions.get(op);
	    // ... und angestossen
	    action.perform(req, resp);
	}
 
	/** Methode muss noch definiert werden, um die Kennung der
	  * Operation aus der URL zu lesen
	  * @param req Http-Request
	  * @return Name der Aktion, die ausgefuehrt werden soll
	  */
	protected abstract String getOperation(HttpServletRequest req);
}

Projektname > „Source Packages“ > controller.web > HttpRequestActionBase.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package controller.web;
 
import java.io.IOException;
 
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
public abstract class HttpRequestActionBase
{
    public abstract void perform(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException;
 
    protected void forward(HttpServletRequest req, HttpServletResponse resp, String forwardName)
    throws ServletException, IOException
    {
        RequestDispatcher reqDis = req.getRequestDispatcher(forwardName);
        reqDis.forward(req, resp);
    }
}