package elte.java2_utikalauz5.j2me; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import javax.microedition.io.*; import java.io.*; /** HTTP kliens midlet. @link.forrásfájl {@docRoot}/../data/j2me/src HelloWorldClient.java @link.letöltés {@docRoot}/../data/j2me HelloWorldClient.jar @link.letöltés {@docRoot}/../data/j2me HelloWorldClient.jad @since Java 2 Útikalauz programozóknak 5.0 */ public class HelloWorldClient extends MIDlet implements CommandListener { /* * az alapértelmezett URL, ahol a szervlet található */ private static String defaultURL = "http://192.168.0.2:8991/javakonyv-ReverseServlet-context-root/servlet/ReverseServlet"; private String rsp=""; // A szöveg beírásakor használt GUI komponensek private Display myDisplay = null; private Form mainScreen; private TextField requestField; // A szervertôl kapott választ megjelenítô GUI komponensek private Form resultScreen; private StringItem resultField; // a mainScreen-en használt "KÜLDÉS" gomb Command sendCommand = new Command("KÜLDÉS", Command.OK, 1); // a resultScreen-en használt "VISSZA" gomb Command backCommand = new Command("VISSZA", Command.OK, 1); public HelloWorldClient(){ // inicializáljuk a GUI komponenseket myDisplay = Display.getDisplay(this); mainScreen = new Form("Kérjük írja be a szöveget:"); requestField = new TextField(null, "HELLO VILÁG", 100, TextField.ANY); mainScreen.append(requestField); mainScreen.addCommand(sendCommand); mainScreen.setCommandListener(this); } public void startApp() { myDisplay.setCurrent(mainScreen); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable s) { if (c == sendCommand) { // a felhasználó által írt szöveg beolvasása String requeststring = requestField.getString(); // POST kérés elküldése a szervernek sendPostRequest(requeststring); // a kapott eredmény megmutatása a képernyôn resultScreen = new Form("A kapott eredmény:"); resultField = new StringItem(null, rsp); resultScreen.append(resultField); resultScreen.addCommand(backCommand); resultScreen.setCommandListener(this); myDisplay.setCurrent(resultScreen); } else if (c == backCommand) { // visszalépünk a mainScreen-re requestField.setString("ÚJABB ÜZENET"); myDisplay.setCurrent(mainScreen); } } // POST üzenet elküldése a web szervernek public void sendPostRequest(final String requeststring) { Thread thread = new Thread() { public void run() { try { HttpConnection hc = null; DataInputStream dis = null; DataOutputStream dos = null; try { // olvasásra és írásra megnyitunk egy http kapcsolatot hc = (HttpConnection) Connector.open(defaultURL, Connector.READ_WRITE); // beállítjuk az üzenetküldés típusát POST-ra hc.setRequestMethod(HttpConnection.POST); // byte-nként elküldjük az üzenetet dos = hc.openDataOutputStream(); byte[] request_body = requeststring.getBytes(); for (int i = 0; i