淺談J2ME與JSP實(shí)現(xiàn)通信技巧
J2ME與JSP實(shí)現(xiàn)通信首先當(dāng)然是要用以下三個(gè)類了:
- HttpConnectionconn=null;//用于連接到web服務(wù)
- InputStreaminput=null;//用于接收返回信息
- DataOutputStreamoutput=null;//用于發(fā)送數(shù)據(jù)
(當(dāng)然也可以用OutputStream,只是DataOutputStream有更多實(shí)用的方法)然后就是用conn=(HttpConnection)Connector.open(url)方法來建立連接
url是String類型的如
- Stringurl="http://202.103.191.61:80/test.jsp";
- stringurl2="http://www.express.com/test.jsp";
如果是用ip地址作為參數(shù)一定要加上端口號(hào),用網(wǎng)址可不用默認(rèn)就是80嘛!
接著設(shè)置web服務(wù)接收的一些參數(shù)
- conn.setRequestMethod(HttpConnection.POST);//也可以用get
- conn.setRequestProperty("IF-Modified-Since","29May200415:17:19GMT");
- conn.setRequestProperty("User-Agent","Profile/MIDP-1.0Configuration/CLDC-1.0");
- conn.setRequestProperty("Content-Language","en-CA");
- conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
打開輸出流,傳數(shù)據(jù)
- output=c.openDataOutputStream();
- output.writeUTF("&test1="+test1);
- output.writeUTF("&test2="+test2);
- output.writeUTF("&test3="+test3);
- output.writeUTF("&test4="+test4);
- output.flush();
到這里實(shí)際上就是我們?cè)跒g覽器中輸入http//202.103.191.61:80/test.jsp&test1=test1&test2=test2&test3=test3&test4=test4
注意到?jīng)]有test.jsp后面全是&參數(shù)名=值第一個(gè)不是以?開頭(但如果參數(shù)是只有一個(gè)或兩個(gè)時(shí)可以不第一個(gè)不用&都行,不知道為什么)!
然后就是取得返回信息了,
- input=c.openDataInputStream();
- intch;
- StringBufferb=newStringBuffer;
- while((ch=is.read())!=-1){
- b.append((char)ch);
- System.out.println(b);
- }
最后別忘閉流!
JSP程序里就是用request.getParameter();來取數(shù)據(jù),然后進(jìn)行處理啦,就不多說了!
附J2ME與JSP實(shí)現(xiàn)通信源碼
- importjavax.microedition.lcdui.*;
- importjavax.microedition.midlet.*;
- importjavax.microedition.io.*;
- importjava.io.*;
- publicclassSendTestMidletextendsMIDletimplementsCommandListener{
- Displaydisplay=null;
- TextFieldttest1,ttest2,ttest3,ttest4;
- Formform;
- Stringurl="http://202.103.191.61:80/test.jsp";
- staticfinalCommandsend=newCommand("注冊(cè)",Command.OK,2);
- staticfinalCommandexit=newCommand("退出",Command.EXIT,2);
- Stringmyname,pas1,pas2,test4;
- publicSendTestMidlet(){
- display=Display.getDisplay(this);
- ttest1=newTextField("Name:","",25,TextField.ANY);
- ttest2=newTextField("password:","",25,TextField.ANY);
- ttest3=newTextField("password2:","",25,TextField.ANY);
- ttest4=newTextField("note:","",25,TextField.ANY);
- form=newForm("注冊(cè)信息");
- }
- publicvoidstartApp()throwsMIDletStateChangeException{
- form.append(ttest1);
- form.append(ttest2);
- form.append(ttest3);
- form.append(ttest4);
- form.addCommand(send);
- form.addCommand(exit);
- form.setCommandListener(this);
- display.setCurrent(form);
- }
- publicvoidpauseApp(){
- }
- publicvoiddestroyApp(booleanunconditional){
- notifyDestroyed();
- }
- publicvoidsendData(Stringurl)throwsIOException{
- HttpConnectionconn=null;
- InputStreaminput=null;
- DataOutputStreamoutput=null;
- StringBufferb=newStringBuffer();
- TextBoxt=null;
- try{
- conn=(HttpConnection)Connector.open(url);
- conn.setRequestMethod(HttpConnection.POST);
- conn.setRequestProperty("IF-Modified-Since","29Dec200115:17:19GMT");
- conn.setRequestProperty("User-Agent","Profile/MIDP-1.0Configuration/CLDC-1.0");
- conn.setRequestProperty("Content-Language","en-CA");
- conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
- output=conn.openDataOutputStream();
- output.writeUTF("&name="+myname);
- output.writeUTF("&pas1="+pas1);
- output.writeUTF("&pas2="+pas2);
- output.writeUTF("&test4="+test4);//.getBytes());
- output.flush();
- input=conn.openDataInputStream();
- intch;
- while((ch=input.read())!=-1){
- b.append((char)ch);
- System.out.print((char)ch);
- }
- t=newTextBox("Date",b.toString(),1024,0);
- t.setCommandListener(this);
- }
- finally{
- if(input!=null){
- input.close();
- }
- if(output!=null){
- output.close();
- }
- if(conn!=null){
- conn.close();
- }
- }
- display.setCurrent(t);
- }
- publicvoidcommandAction(Commandconn,Displayabled){
- Stringlabel=conn.getLabel();
- if(label.equals("exit")){
- destroyApp(true);
- }elseif(label.equals("date?")){
- myname=ttest1.getString();
- pas1=ttest2.getString();
- pas2=ttest3.getString();
- test4=ttest4.getString();
- try{
- sendData(url);
- }catch(IOExceptione){}
- }
- }
- }
【編輯推薦】
- 淺析JSP HTTP服務(wù)器支持CGI
- 使用JSP頁面生成PDF報(bào)表
- JSP自定義標(biāo)簽定義步驟
- 詳解測(cè)試JSP容器
- 介紹JSP HTTP服務(wù)器實(shí)現(xiàn)的以下特性
【責(zé)任編輯:彭凡 TEL:(010)68476606】