j2me与j2ee通信示例(2)
来源:互联网 发布:php语法手册 编辑:程序博客网 时间:2024/06/07 00:18
最近在开发j2me与jsp通信传多参数时有点心得,也因网上这类资料比较少所以写下来与大家分享,写得不好之处请大家多指教!
首先当然是要用以下三个类了:
HttpConnection conn = null;//用于连接到web服务
InputStream input = null;//用于接收返回信息
DataOutputStream output =null;//用于发送数据(当然也可以用OutputStream,只是DataOutputStream有更多实用的方法)
然后就是用conn = (HttpConnection)Connector.open(url)方法来建立连接
url是String类型的如
String url="http: //202.103.191.61:80/test.jsp";
string url2="http: //www.express.com/test.jsp";
如果是用ip地址作为参数一定要加上端口号,用网址可不用默认就是80嘛!
接着设置web服务接收的一些参数
conn.setRequestMethod(HttpConnection.POST);//也可以用get
conn.setRequestProperty("IF-Modified-Since", "29 May 2004 15: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 = c.openDataOutputStream();
output.writeUTF("&test1="+test1);
output.writeUTF("&test2="+test2);
output.writeUTF("&test3="+test3);
output.writeUTF("&test4="+test4);
output.flush();
到这里实际上就是我们在浏览器中输入http//202.103.191.61:80/test.jsp&test1=test1&test2=test2&test3=test3&test4=test4
注意到没有test.jsp后面全是&参数名=值第一个不是以?开头(但如果参数是只有一个或两个时可以不第一个不用&都行,不知道为什么)!
然后就是取得返回信息了,
input = c.openDataInputStream();
int ch;
StringBuffer b=new StringBuffer;
while ((ch = is.read()) != -1) {
b.append((char) ch);
System.out.println(b);
}
最后别忘闭流!
jsp程序里就是用request.getParameter();来取数据,然后进行处理啦,就不多说了!
附j2me源码
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import javax.microedition.io.*;
import java.io.*;
public class SendTestMidlet extends MIDlet implementsCommandListener {
Displaydisplay = null;
TextFieldttest1,ttest2,ttest3,ttest4;
Formform;
String url ="http://202.103.191.61:80/test.jsp";
static finalCommand send = new Command("注册", Command.OK, 2);
static finalCommand exit = new Command("退出", Command.EXIT, 2);
Stringmyname,pas1,pas2,test4;
publicSendTestMidlet(){
display = Display.getDisplay(this);
ttest1 = new TextField("Name:", " ", 25, TextField.ANY);
ttest2 =new TextField("password:"," ",25,TextField.ANY);
ttest3 =new TextField("password2:"," ",25,TextField.ANY);
ttest4 =new TextField("note:"," ",25,TextField.ANY);
form = new Form("注册信息");
}
public voidstartApp() throws MIDletStateChangeException {
form.append(ttest1);
form.append(ttest2);
form.append(ttest3);
form.append(ttest4);
form.addCommand(send);
form.addCommand(exit);
form.setCommandListener(this);
display.setCurrent(form);
}
public voidpauseApp() {
}
public voiddestroyApp(boolean unconditional) {
notifyDestroyed();
}
public voidsendData(String url) throws IOException {
HttpConnection conn = null;
InputStream input = null;
DataOutputStream output = null;
StringBuffer b = new StringBuffer();
TextBox t = null;
try {
conn = (HttpConnection)Connector.open(url);
conn.setRequestMethod(HttpConnection.POST);
conn.setRequestProperty("IF-Modified-Since", "29 Dec 2001 15: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();
int ch;
while ((ch = input.read()) != -1) {
b.append((char) ch);
System.out.print((char)ch);
}
t = new TextBox("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);
}
publicvoid commandAction(Command conn, Displayable d) {
String label = conn.getLabel();
if(label.equals("exit")) {
destroyApp(true);
} else if (label.equals("date?")) {
myname = ttest1.getString();
pas1 =ttest2.getString();
pas2 =ttest3.getString();
test4 =ttest4.getString();
try {
sendData(url);
}catch(IOException e) {}
}
}
}
- j2me与j2ee通信示例(2)
- j2ee与j2me通信
- j2me与jsp通信技巧
- j2me与jsp通信技巧
- J2SE简介与J2EE、J2ME的比较
- J2SE与J2EE、J2ME的比较
- j2ME/j2SE/j2EE与JDK/JRE/JVM
- Flash与J2EE之间的通信!
- j2ee-j2me tips
- 浅析J2EE,J2SE,J2ME
- j2EE,j2SE,j2ME
- j2me/j2se/j2ee
- J2EE、J2SE、J2ME(转)
- J2EE和J2ME
- J2SE、J2EE、J2ME
- J2SE 、J2EE、J2ME
- J2SE,J2EE,J2ME区别
- J2SE,J2EE,J2ME
- spring中的idref和ref的区别
- CLOSE_WAIT状态分析
- Javascript的变量与delete操作符[ZT]
- flex RESULT_FORMAT_E4X对象转化为ArrayCollection
- 下雨天
- j2me与j2ee通信示例(2)
- [SqlException (0x80131904): 在此上下文中不允许使用名称 "XXX"。有效表达式包括常量、常量表达式和变量(在某些上下文中)。不允许使用列名。]
- ACE_Message_Block介绍
- WinCE BSP中OAL层中的OEMIoControl介绍
- .net获取命令行
- SQL distinct用法 简单group by 命令
- 谁说SSL不如IPSec强 实战体验SSL-VPN
- soft iscsi实现冗余的方式
- Ogre射线查询返回的结果说明