İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır
Zafer Teker
tekzaf@yahoo.com

Bir midlet'ten bir jsp'yi çağırmak.

Giriş

Bu örnekte midlet'ten girilen bir yazıyı, http://localhost:8080/examples/midlet_test/data.jsp URL'sine parametre olarak gönderilmektedir. data.jsp ise aldığı parametreyi aynen bize vermektedir. Bu örnek sadece midletten jsp'ye bir parametre göndermek ve responce(cevabı) almak için yapılmıştır.

Göster Gizle Kopar Satır Gizle Satır Göster
  1 import javax.microedition.midlet.*;
  2 import javax.microedition.lcdui.*;
  3 import javax.microedition.io.*;
  4 import java.io.*;
  5 public class MidletUseJsp extends MIDlet{    
  6     NetworkTextBox box;
  7     public void startApp(){
  8         box=new NetworkTextBox("Test:","",20,TextField.ANY);
  9         Display.getDisplay(this).setCurrent(box);                
 10     }
 11     public void exit(){}  
 12     public void pauseApp(){}
 13     public void destroyApp(boolean unconditional){}            
 14 }
 15 class NetworkTextBox extends TextBox implements CommandListener{
 16     String url="http://localhost:8080/examples/midlet_test/data.jsp";
 17     Command sendCommand=new Command("Send",Command.SCREEN,1);
 18     public NetworkTextBox(String title,String text,int maxSize,int constraints){
 19         super(title,text,maxSize,constraints);
 20         addCommand(sendCommand);
 21         setCommandListener(this);
 22     }    
 23     public void commandAction(Command c, Displayable d){
 24         if(c==sendCommand){
 25            try{
 26                String s=getString();
 27                if(s!=null){
 28                     String result=sendData(s);
 29                     setString("sonuc "+result);
 30                }else{
 31                     setString("String null");                 
 32                }                
 33            }catch(Exception e){
 34                e.printStackTrace();
 35                setString("Exception"+e.getMessage()); 
 36            }
 37         }    
 38     }         
 39     private String sendData(String data) throws Exception{
 40         url=url+"?data="+data;
 41         HttpConnection connecton=(HttpConnection)Connector.open(url);
 42         InputStream is=connecton.openInputStream();        
 43         StringBuffer buffer=new StringBuffer();
 44         int ch;        
 45         while ((ch=is.read())!=-1) {
 46             buffer.append((char)ch);
 47         }
 48         is.close();
 49         connecton.close();
 50         return buffer.toString();
 51     }    
 52 }

Kullanılan JSP:

Göster Gizle Kopar Satır Gizle Satır Göster
<%=request.getParameter("data")%>

NetworkTextBox class'ı TextBox class'ını extends etmiştir. TextBox midletlerde ekranı tamamen kaplayan bir text alanıdır. Biz midlet yüklendiğinde (startApp methodu)

box=new NetworkTextBox("Test:","",20,TextField.ANY);
Display.getDisplay(this).setCurrent(box);        

şeklinde ekrana NetworkTextBox class'ının bir nesnesini koyuyoruz.

TextBox'sa yazılan yazıyı karşı tarafa göndermek için bir Command koyuyoruz. Bu command seçildiğinde text box'taki yazılan yazı alınmakta (getString method'u ile) ve sendData method'u çağrılarak yazılan yazı data.jsp dosyasına gönderilmektedir. sendData method'u jsp tarafında gönderilen cevabı geri göndermektedir.

sendData method'u

url=url+"?data="+data;
HttpConnection connecton=(HttpConnection)Connector.open(url);

ile HttpConnection kurmaktadır. Görüldüğü gibi sendData methoduna verilen data parametre olarak gönderilmektedir. jsp tarafından verilen cevabı almak için

InputStream is=connecton.openInputStream();

şeklinde bir InputStream açılır. Alınan stream

while ((ch=is.read())!=-1) {
	buffer.append((char)ch);
}

şeklinde StringBuffer nesnesine aktarılır. Bu StringBuffer nesnesi String'e çevrilir ve gönderilir. Gönderilen cevap text box'ta gösterilir.

Dosya Listesi

İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır