!!! Listing 1: Moduldatei GlueckskeksRPC.gwt.xml !!! Listing 2: GlueckskeksRPC.html

Glückskeks-Botschaft:

!!! Listing 3: Die Klasse GluekcskeksRPC !!! Listing 3: Die Klasse GlueckskeksRPC public class GlueckskeksRPC implements EntryPoint { final Label processingLabel = new Label("Status: Ready."); final Label messageLabel = new Label(""); private void getGlueckskeks() { GlueckskeksServiceAsync dataService = (GlueckskeksServiceAsync) GWT.create(GlueckskeksService.class); ServiceDefTarget endpoint = (ServiceDefTarget) dataService; endpoint.setServiceEntryPoint("/GlueckskeksService"); dataService.getGlueckskeks( new AsyncCallback(){ public void onSuccess(Object result) { GlueckskeksMessage message = (GlueckskeksMessage)result; processingLabel.setText("Status: Ready."); messageLabel.setText(message.getMessage()); } public void onFailure(Throwable caught) { Window.alert("Unable to get data from server: " +caught.toString()); } }); } public void onModuleLoad() { final Button button = new Button("Neuer Glückskeks"); button.addClickListener(new ClickListener() { public void onClick(Widget sender) { getGlueckskeks(); processingLabel.setText("Status: Searching..."); } }); RootPanel.get("fortuneStatus").add(processingLabel); RootPanel.get("fortuneButton").add(button); RootPanel.get("fortuneMessage").add(messageLabel); } } !!! Listing 4: Sajax Sajax-Glückskeks

Ajax-Glückskeks (PHP/Sajax-Version)

Glückskeks-Botschaft:

!!! Listing 5: Xajax addAssign("fortuneMessage","innerHTML", $ergebnis); // Response in das Nachrichtenformat XML wandeln: return $objResponse->getXML(); } // Zuvor definierte Funktion fuer Javascript-Export registrieren $xajax->registerFunction("getFortuneCookie"); // CGI-Request (falls vorhanden) verarbeiten $xajax->processRequests(); ?> Ajaxbuch.de. Xajax printJavascript(); ?>

Ajax-Glückskeks (Xajax-Version)

Glückskeks-Botschaft:

!!! Listing 6: DWR package com.linkwerk.dwr; // imports... GlueckskeksProducer { private Random random = new Random(); public String getGlueckskeks() throws ServletException, IOException { WebContext ctx = WebContextFactory.get(); InputStream f = ctx.getServletContext().getResourceAsStream("/WEB-INF/cookies.txt"); BufferedReader reader = new BufferedReader(new InputStreamReader(f, "utf-8")); List lines = new ArrayList(); String line = null; while ( (line=reader.readLine()) != null ){ lines.add(line); } return lines.get(random.nextInt(lines.size() - 1)); } } !!! Listing 7: Web.config (Atlas)
!!! Listing 8: Atlas-Glückskeksklasse <%@ WebService Class="Linkwerk.Com.GlueckskeksService" Language="C#" %> namespace Linkwerk.Com { [WebService (Namespace = "http://www.linkwerk.com/webservices/") ] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class GlueckskeksService : WebService { private Random random=new Random(); static List lines = new List(); public GlueckskeksService() { String rootPath = Server.MapPath("~"); try { using (StreamReader sr = new StreamReader(rootPath + "\\cookies.txt")) { String line; while ((line = sr.ReadLine()) != null) { lines.Add(line); } } } catch (Exception e) { throw e; } } [WebMethod] public string getGlueckskeks() { return String.Format(getRandomLine()); } public string[] getGlueckskekse() { return lines.ToArray(); } private string getRandomLine() { return String.Format(getGlueckskekse()[random.Next(lines.Count - 1)]); } } } !!! Listing 9: Atlas-Glückskeks: HTML <%@ Page Language = "C#" Title = "Glückskeks" %> Glückskeks mit Atlas

Glückskeks-Botschaft: