Ich war gerade auf der Webseite von Vodafone, um mich über aktuelle Handys und Tarife zu informieren. Beim Blick in den Vertragsdetails öffnete sich dann plötzlich ein Chat-Fenster indem mich Christian, der für mich zuständige Vodafone Chat-Partner, begrüßte.
Zuerst hielt ich dieses Fenster für einen Trick, bei dem mir die künstliche Intelligenz einer Webapplikation glaubhaft machen wollte, dass mir um 23:15 Uhr noch ein Berater zur Verfügung steht. Um das zu Überprüfen stellte ich dem Berater ein paar Fragen und fand dabei heraus, dass es sich wirklich um einen echten (!) Menschen handelte, der mich Freitagnacht noch berät. Sogar die Rechtschreibung war einwandfrei! Ich war wirklich überrascht, denn sowas habe ich noch nie erlebt. Das ist wirklich einwandfreier Kundenservice, denn bei Vodafone kann man sich online bis 24 Uhr beraten lassen. Ob das bei technischen Problemen auch so ist, weiß ich allerdings nicht.
Zum Beweis hier ein Screenshot der Unterhaltung:
Studenten bezahlen dank Office 2010 Technologie-Garantie-Upgrade nur 52 EUR für Microsoft Office 2010 Professional. Die Aktion ist verfügbar bis zum 30. Juni 2010.
Musikvideo: Adobe Flash Player (Version 9 oder höher) wird benötigt um dieses Musikvideo abzuspielen. Die aktuellste Version steht hier zum herunterladen bereit. Außerdem muss JavaScript in Ihrem Browser aktiviert sein.
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); } } |
Fast wöchentlich bekomme ich gefälschte PayPal-Emails. Meistens sind diese E-Mails an der schlechten Rechtschreibung erkennbar und daran, dass im Anschreiben nicht der richtige Vor -und Nachname verwendet wird. Außerdem verweisen die Hyperlinks nicht auf die echte (!) PayPal-Website.
Beispiel einer Phishing Email:

Wer diesem Blödsinn ein Ende machen will, der leitet die Phishing-Mails am Besten an spoof@paypal.com weiter. Das richtige PayPal wird sich dann darum kümmern. Jede weitergeleitete Email zählt im Kampf gegen die Spam-Abzocke!
Bei Power Parts bekommt man eine riesige Auswahl an Motorrad Ersatzteilen und Zubehör. Die POWER PARTS Vertriebs GmbH hat sogar eine kundenfreundliche Freecall-Hotline (0800/6646382), die montags bis freitags von 9-17 Uhr erreicht werden kann.
Für den Aufbau meiner Cagiva W8 125 ccm (Bj. 2001) habe ich dort ein Kettensatz bestellt, nachdem ich schon lange gesucht habe:
AFAM Kettensatz (520-Teilung) mit AFAM Kette A520XMR-110 (110 Rollen, XS-Ring verstärkt, ARS Clipschloss), AFAM Ritzel 46203-13 (13 Zähne) und AFAM Kettenrad (Stahl) 44202-46 (46 Zähne).
Alle weiteren Teile (Lenkkopflager und Glühbirnen) habe ich bei der BikerWorld Rosenow (Landsbergerstr. 262, 12623 Berlin) per Email-Bestellung bekommen. Meinen Vorderradreifen (Michelin T63 90/90-21 TT 54S) und Hinterradreifen (Michelin T63 110/80-18 TT 58S) habe ich von reifen.com.




0