Um Zufallszahlen in Java zu erstellen, kann man die Bibliothek java.util.Random verwenden. Die Zufalls-Klasse von Java ist sehr vielseitig und bietet unter anderem die Möglichkeit, Zufallszahlen in einem bestimmten Bereich zu definieren. An dieser Stelle folgt ein kleiner Beispiel-Code, welcher 20 Zufallszahlen im Bereich von 0 bis 72 ausgibt:
1 2 3 4 5 6 7 8 9 10 | public void erstelleZufallsZahl() { Random zufallsgenerator = new Random(); for(int i=0; i<20; i++) { int zahl = zufallsgenerator.nextInt(72); System.out.println(zahl); } } |
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); } } |
Ein einfaches Code-Beispiel für ein Java Servlet nach JEE6-Konventionen. Voll kompatibel mit GlassFish v3.
Beispiel:
Ausführen mit: http://localhost:8080/Projektname/servletpower?power=1&name=Benny
controller.web.PowerServlet.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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | package controller.web; import java.io.IOException; import java.io.PrintWriter; import java.util.Enumeration; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet(name="Power Servlet", urlPatterns={"/servletpower"}) public class PowerServlet extends HttpServlet { // Die Request-Methode realisiert die Ausgabe an den Client (Web-Browser) protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); Enumeration parameters = request.getParameterNames(); String strParameter; String strValue; PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>PowerServlet</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>PowerServlet</h1>"); out.println("Homepage: <a href=\"http://localhost" + request.getContextPath() + ">Weblink</a><br/>"); if(parameters.hasMoreElements() == false) { out.println("Keine Parameter übergeben."); } else { while(parameters.hasMoreElements()) { strParameter = parameters.nextElement().toString(); strValue = request.getParameter(strParameter); out.print(strParameter+": "); out.print(strValue); out.print("<br/>"); } } out.println("</body>"); out.println("</html>"); } @Override // Die Methode doGet wird automatisch bei Eingabe // der Webseite in der Adresszeile des Browsers aufgerufen protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override public String getServletInfo() { return "Kurze Beschreibung"; } } |
MySQL-Datenbankabfrage mit der Java Database Connectivity aus der Java Enterprise Edition. Für die Verwendung wird die Bibliothek mysql-connector-java-5.1.5-bin.jar benötigt, damit der MySQL Driver für die JDBC zur Verfügung steht. Das Kürzel “VO” bezeichnet die Value Objects, welche die Datensätze in der Datenbank sind.
data.CD_VO
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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | package data; import java.sql.Date; import java.util.ArrayList; public class CD_VO { int id; String titel; String interpret; Date veroeffentlichung; String coverDatei; ArrayList<song_VO> songs; public CD_VO() { this.id = 0; this.titel = ""; this.interpret = ""; this.veroeffentlichung = new java.sql.Date(2010-10-10); this.coverDatei = ""; songs = new ArrayList<song_VO>(); } public CD_VO(String titel, String interpret, Date veroeffentlichung, String coverDatei) { setID(); this.titel = titel; this.interpret = interpret; this.veroeffentlichung = veroeffentlichung; this.coverDatei = coverDatei; songs = new ArrayList<song_VO>(); } private void setID() { this.id++; } public String getCoverDatei() { return coverDatei; } public void setCoverDatei(String coverDatei) { this.coverDatei = coverDatei; } public long getId() { return id; } public void setId(int id) { this.id = id; } public String getInterpret() { return interpret; } public void setInterpret(String interpret) { this.interpret = interpret; } public String getTitel() { return titel; } public void setTitel(String titel) { this.titel = titel; } public Date getVeroeffentlichung() { return veroeffentlichung; } public void setVeroeffentlichung(Date veroeffentlichung) { this.veroeffentlichung = veroeffentlichung; } |
repository.JdbcConnection
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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | package repository; import data.CD_VO; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.LinkedList; public class JdbcConnection { protected Connection getConnection() { try { Class.forName("com.mysql.jdbc.Driver"); return DriverManager.getConnection("jdbc:mysql://localhost/jee", "root", "password"); } catch(SQLException excSQL) { System.out.println("Fehler beim Aufbau der SQL-Verbindung:"); excSQL.printStackTrace(); return null; } catch(ClassNotFoundException excCNF) { System.out.println("Treiber-Manager nicht gefunden."); excCNF.printStackTrace(); return null; } } public void findAllTest() { Connection con = null; PreparedStatement ps = null; ResultSet rs = null; String sqlStr = "SELECT * FROM cd"; LinkedList<cd_VO> voList = new LinkedList<cd_VO>(); CD_VO vo; try { con = getConnection(); ps = con.prepareStatement(sqlStr); rs = ps.executeQuery(); while(rs.next()) { vo = new CD_VO(); vo.setId( rs.getInt("id") ); vo.setInterpret( rs.getString("interpret") ); vo.setTitel( rs.getString("titel") ); vo.setVeroeffentlichung( rs.getDate("veroeffentlichung") ); vo.setCoverDatei( rs.getString("coverdatei") ); voList.add(vo); // Testausgabe: System.out.println( vo.getId() ); System.out.println( vo.getInterpret() ); System.out.println( vo.getTitel() ); System.out.println( vo.getVeroeffentlichung() ); System.out.println( vo.getCoverDatei() ); } } catch(SQLException excSQL) { System.out.println("Fehler beim Abruf aus der SQL-Verbindung:"); excSQL.printStackTrace(); } finally { try { if( ps != null ) ps.close(); if( con != null ) con.close(); } catch(SQLException excSQL) { System.out.println("Fehler beim Abbau der SQL-Verbindung:"); excSQL.printStackTrace(); } } } } |
repository.Main
1 2 3 4 5 6 7 8 9 10 | package repository; public class Main { public static void main(String args[]) { JdbcConnection test = new JdbcConnection(); test.findAllTest(); } } |
Der folgende Code-Schnipssel speichert die Anzahl der Elemente einer Enumeration als Ganzzahl ab:
1 2 3 4 5 6 7 8 | Enumeration enumeration; int enumCount = 0; while(enumeration.hasMoreElements()) { enumCount++; enumeration.nextElement(); } |
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 | #include <stdio.h> int main(int argc, char* argv[]) { unsigned char i = 0; /* Eingabe-Maximum: 254 Zeichen */ unsigned char eingabe[255]; /* Text einlesen */ printf("Eingabe:\n"); /* Einlesen der Eingabe mit 255 Chars in "stdin". stdin ist eine Datei, mit dem Inhalt der Tastaur. */ fgets(eingabe,255,stdin); /* Solange der Text noch nicht zu Ende ist */ while(eingabe[i] != '\0') { /* Wenn Zeichen ein Leerzeichen ist */ if(eingabe[i] == 32) { i++; continue; } /* sonst */ else printf("%c",eingabe[i]); /* String weiter parsen */ i += 1; } printf("\n"); return 0; } |


0