|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,js|页面起首,我将会商一下HttpConnection接口,这个接口能够用来创建Http毗连
HttpConnection接口
ConnectedLimitedDeviceConfiguration(无限毗连设备设置。简称CLDC)。供应了一套用于收集毗连的类,就是一般毗连框架?一种平台自力毗连框架,供应了一种分层的毗连接口,它的完成操纵体系由详细的设备简表供应(好比MobileInformationDeviceProfile(MIDP))。
MIDP经由过程供应撑持HTTP的HttpConnection框架来完成扩大CLDC的一样平常毗连框架的感化。一切MIDP的使用程序完成都请求撑持HTTP,这次要是由于HTTP便可以经由过程利用基于IP的协定(如TCP/IP)也能够经由过程利用非IP协定(如WAP)来完成。
一切的毗连都是利用Connector类的open()办法来创立的,假如毗连乐成的话,这个办法就前往一个完成某种一般毗连托言的对象,举一个例子吧,上面的代码段能够用来翻开一个到某个URL的HTTP毗连。Stringurl="http://www.ora.com/whatif.jsp";;
HttpConnectionconnection=Connector.open(url);
一旦一个毗连被创建后,就能够设置属性了,然后就能够创建I/O流来发送或吸收数据。举个例子,请看上面的这一小段代码,用来设置属性并创建输出/输入流。- //设置HTTP属性
- connection.setRequestMethod(HttpConnection.POST);
- connection.setRequestProperty("IF-Modified-Since","22Dec200116:33:19GMT");
- connection.setRequestProperty("User-Agent","Profile/MIDP-1.0Configuration/CLDC-1.0");
- connection.setRequestProperty("Content-Language","en-CA");
- //创立I/O流
- InputStreamis=connection.openInputStream();
- OutputStreamos=connection.openOutputStream();
复制代码 上面让我们来研讨一个例子,懂得一下怎样从MIDlet中挪用JSP,我们挪用JSP页面代码的程序段1以下所示:
代码1:- today.jsp
- <%!Stringname;%>
- <%
- name=request.getParameter("name");
- java.util.Datetoday=newjava.util.Date();
- out.println("Got:"+name);
- out.println("Date&time:"+today);
- %>
复制代码 这个JSP也面但愿获得一个名为name的变量的值,一旦这个值被获得,就会创立一个Date的实例,然后name和date的值就会被打到客户端中的输入流中。
如今,让我们看看怎样写一个MIDlet来挪用这个JSP页面,我们将利用POST哀求办法来挪用它,这就意味着被传送到JSP页面的数据不是利用URL编码的,而是以一段独自的信息传进,这段MIDlet代码如代码段2所示。
代码2:- InvokeJSPMidlet.java
- importjavax.microedition.lcdui.*;
- importjavax.microedition.midlet.*;
- importjavax.microedition.io.*;
- importjava.io.*;
- publicclassInvokeJSPMidletextendsMIDletimplementsCommandListener{;
- Displaydisplay=null;
- //name字段
- TextFieldname=null;
- formform;
- Stringurl="http://127.0.0.1:8080/examples/jsp/today.jsp";;
- staticfinalCommandcallCommand=newCommand("date?",Command.OK,2);
- staticfinalCommandclearCommand=newCommand("clear",Command.STOP,2);
- Stringmyname;
- publicInvokeJSPMidlet(){;
- display=Display.getDisplay(this);
- name=newTextField("Name:","",25,TextField.ANY);
- form=newform("InvokeJSP");
- };
- publicvoidstartApp()throwsMIDletStateChangeException{;
- form.append(name);
- form.addCommand(clearCommand);
- form.addCommand(callCommand);
- form.setCommandListener(this);
- display.setCurrent(form);
- };
- publicvoidpauseApp(){;
- };
- publicvoiddestroyApp(booleanunconditional){;
- notifyDestroyed();
- };
- voidinvokeJSP(Stringurl)throwsIOException{;
- HttpConnectionc=null;
- InputStreamis=null;
- OutputStreamos=null;
- StringBufferb=newStringBuffer();
- TextBoxt=null;
- try{;
- c=(HttpConnection)Connector.open(url);
- c.setRequestMethod(HttpConnection.POST);
- c.setRequestProperty("IF-Modified-Since","29Dec200115:17:19GMT");
- c.setRequestProperty("User-Agent","Profile/MIDP-1.0Configuration/CLDC-1.0");
- c.setRequestProperty("Content-Language","en-CA");
- c.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
- os=c.openOutputStream();
- os.write(("name="+myname).getBytes());
- os.flush();
- is=c.openDataInputStream();
- intch;
- while((ch=is.read())!=-1){;
- b.append((char)ch);
- System.out.print((char)ch);
- };
- t=newTextBox("Date",b.toString(),1024,0);
- t.setCommandListener(this);
- };finally{;
- if(is!=null){;
- is.close();
- };
- if(os!=null){;
- os.close();
- };
- if(c!=null){;
- c.close();
- };
- };
- display.setCurrent(t);
- };
- publicvoidcommandAction(Commandc,Displayabled){;
- Stringlabel=c.getLabel();
- if(label.equals("clear")){;
- destroyApp(true);
- };elseif(label.equals("date?")){;
- myname=name.getString();
- try{;
- invokeJSP(url);
- };catch(IOExceptione){;};
- };
- };
- };
复制代码 InvokeJSPMidlet代码指定了要被挪用的JSP页面的URL,然后就创立了两个命令按钮,然后创立一个text字段,可让用户在内里输出姓名。在InvokeJSP()办法中,将创建一个到这个URL的HTTP毗连,然后再创建I/O流,MIDlet利用输入流来发送数据到JSP页面,接着再利用输出流从JSP页面中吸收数据,注重,在本例中我们将发送姓名到JSP页面中,实在它也只是向你演示一下数据怎样在MIDlet和页面之间流畅。
在代码段2中,应该注重的事变是为了使JSP页面利用getParameter()从name变量中获得数据的值,你必需设置Content-Type属性为application/x-www-form-urlencoded.
小结
本文只是演示怎样从MIDlet中挪用JSP页面,InvokeJSPMidlet还能够很简单的修正来完成挪用其他的JSP的目标。可是注重,JSP次要和HTML共同利用,可是假如你的挪动设备中的扫瞄器不克不及处置HTML的话,那末XML也是一个十分好的选择,由于MIDlet能够剖析XML文档。
由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak, |
|