成都网站推广
 

中联无限-服务热线:028-86637122 工作时间:9:00-18:00 星期一-星期五

 
首页 | 关于我们 | 新闻动态 | 成都网站建设 | 成都网站推广 | 成都微信营销 | 网站制作案例 | 软件开发 | 常见问题 | 域名注册 | 虚拟主机
  网站知识
     推荐工具 / Tools
     网站运营/Operation
  
  客户案例
·巨丰达人减肥训练营
·成都写意经典家具有限公司
·成都卡姆士安防设备有限公司
·新千里装饰集团
·成都吕氏三才中医博爱堂
·泊菲特语言学校
·四川高地易景园林工程公司
·成都烽火建筑装饰设计有限公司
·优尼客酒店
·成都杜嘉机电有限公司
·菲颖1购
·成都安东尼体育文化传播有限公
·四川九章生物化工科技发展有限
·成都环球体育文化传播有限公司
·万友爱淘网上商城
·四川省斯博兰德建筑装饰设计有
·肥犇仔
·成都市猛追湾游泳场
  网站运营
·企业新站推广中存在的六大误区
·网站运营之八大要素
·怎么区别网站运营与网络运营
·怎样区分网站运营和网络运营
·SQL Server 200
·新网站运营后如何迅速增加网站
·减肥网站是怎样提高收入的
·个人网站赢利模式的拓展方向
·商业门户网站运营模式探讨
·成都地方门户网站运营模式
·网站策划人如何盈利
·网站运营模式观察与分析
  最新资讯
·成都网络推广公司介绍的六种推
·分析导致成都网络推广效果差的
·成都网站优化:企业网站关键词
·成都网站优化初期企业应该需要
·浅析成都网站优化中企业如何建
·分析企业在做成都网站优化过程
·短视频营销可以为成都网络推广
·小品牌怎么样才能既省钱又省力
·分析成都网络推广中企业需要注
·如何根据成都网络推广的营销周
·成都网站优化需要遵循哪些规则
·成都SEO网站优化过程中如何
 
   您的位置在:成都网站推广 > 网站知识 > 网站教程 /Tutorial > 正文
   网站教程 /Tutorial

j2me研发中怎么从midlet中调用jsp页面

[ 来源:中联无限科技有限公司   发布日期:2010/9/4 10:34:54 ]
首先,我将讨论一下HttpConnection接口,这个接口能用来建立Http连接 HttpConnection 接口 Connected Limited Device Configuration(有限连接设备设置。简称CLDC)。提供了一套用于网络连接的类,就是普通连接框架?一种平台独立连接框架,提供了一种分层的连接接口,他的实现操作系统由具体的设备简表提供(比如Mobile Information Device Profile(MIDP))。

中联无限科技公司提供专业的成都网站建设成都网站设计成都网站制作成都网站推广

首先,我将讨论一下HttpConnection接口,这个接口能用来建立Http连接

HttpConnection 接口

Connected Limited Device Configuration(有限连接设备设置。简称CLDC)。提供了一套用于网络连接的类,就是普通连接框架?一种平台独立连接框架,提供了一种分层的连接接口,他的实现操作系统由具体的设备简表提供(比如Mobile Information Device Profile(MIDP))。

MIDP通过提供支持HTTP的HttpConnection 框架来实现扩展CLDC的一般连接框架的作用。所有MIDP的应用程式实现都需求支持HTTP,这主要是因为HTTP即能通过使用基于IP的协议(如TCP/IP)也能通过使用非IP协议(如WAP)来实现。

所有的连接都是使用Connector类的open()方法来创建的,如果连接成功的话,这个方法就返回一个实现某种普通连接借口的对象,举一个例子吧,下面的代码段能用来打开一个到某个URL的HTTP连接。

String url = "http://www.ora.com/whatif.jsp";;

HttpConnection connection = Connector.open(url);

一旦一个连接被建立后,就能设置属性了,然后就能建立I/O流来发送或接收数据。举个例子,请看下面的这一小段代码,用来设置属性并建立输入/输出流。

// 设置 HTTP 属性connection.setRequestMethod(HttpConnection.POST);connection.setRequestProperty("IF-Modified-Since","22 Dec 2001 16:33:19 GMT");connection.setRequestProperty("User-Agent","Profile/MIDP-1.0 Configuration/CLDC-1.0");connection.setRequestProperty("Content-Language", "en-CA");// 创建I/O流InputStream is = connection.openInputStream();OutputStream os = connection.openOutputStream();
 


下面让我们来研究一个例子,了解一下怎么从MIDlet中调用JSP,我们调用JSP页面代码的程式段1如下所示:

代码1:

today.jsp<%! String name; %><% name = request.getParameter("name"); java.util.Date today = new java.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 import javax.microedition.lcdui.*;import javax.microedition.midlet.*;import javax.microedition.io.*;import java.io.*;public class InvokeJSPMidlet extends MIDlet implements CommandListener {;Display display = null;// name 字段 TextField name = null;form form;String url = "http://127.0.0.1:8080/examples/jsp/today.jsp";;static final Command callCommand = new Command("date?", Command.OK, 2);static final Command clearCommand = new Command("clear", Command.STOP, 2);String myname;public InvokeJSPMidlet() {;display = Display.getDisplay(this);name = new TextField("Name:", " ", 25, TextField.ANY);form = new form("Invoke JSP");};public void startApp() throws MIDletStateChangeException {;form.append(name);form.addCommand(clearCommand);form.addCommand(callCommand);form.setCommandListener(this);display.setCurrent(form);};public void pauseApp() {;};public void destroyApp(boolean unconditional) {;notifyDestroyed();};void invokeJSP(String url) throws IOException {;HttpConnection c = null;InputStream is = null;OutputStream os = null;StringBuffer b = new StringBuffer();TextBox t = null;try {; c = (HttpConnection)Connector.open(url); c.setRequestMethod(HttpConnection.POST); c.setRequestProperty("IF-Modified-Since", "29 Dec 2001 15:17:19 GMT"); c.setRequestProperty("User-Agent","Profile/MIDP-1.0 Configuration/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(); int ch; while ((ch = is.read()) != -1) {;b.append((char) ch);System.out.print((char)ch); }; t = new TextBox("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);};public void commandAction(Command c, Displayable d) {; String label = c.getLabel(); if(label.equals("clear")) {;destroyApp(true); }; else if (label.equals("date?")) {;myname = name.getString(); try {;invokeJSP(url); };catch(IOException e) {;}; };};};
 


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文件。

中联无限科技公司提供专业的成都网站建设成都网站设计成都网站制作成都网站推广


上一篇:windows 2003 server编写asp代码需要注意的地方
下一篇:几大搜索引擎的网站登录入口
   相关网站教程 /Tutorial
·SEO之如何更好的布局?2011-08-11
·Ajax2011-05-26
·JSP的定义2011-05-26
·PHP是什么2011-05-26
·CSS教程:CSS背景全攻略2011-03-26
·javascript cookies 存2011-03-25
·网站外部链接的注意事项2011-03-24
·PHP防御木马攻击的技巧2011-03-11
·Apache服务器的配置与管理2011-03-11
·SQL Server数据库查询优化的常用2011-03-09
·SQL Server触发器2011-03-09
·ASP.NET JMAIL 发送邮件方法2011-03-09
首页 | 公司简介 |联系方式 |付款方式 |人才招聘 | 域名空间 | 网页设计案例 | 网站知识 | 解决方案 | 建站指南 | 网站地图
地址:成都市青羊区西大街1号   邮编:610041   E- Mail:619027769@qq.com   代理合作: 028-86637122
网站建设/推广咨询:028-86637122  86618860  传真:028-86637322   
成都中联无限科技有限公司 2004-2014    蜀ICP备05017733号