电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 网络编程 -> JSP教程
j2me开发中如何从midlet中调用jsp页面_jsp技巧
作者:网友供稿 点击:0
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 

首先,我将讨论一下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文档。


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·如何使用jsp+mysql创建留言本(三)_jsp实例
·用连接池提高servlet访问数据库的效率(2)_jsp技巧
·使用javabean创建您的网上日历本(1)_jsp实例
·使用javabean创建您的网上日历本(2)_jsp实例
·打开页面就是全屏的方法_jsp技巧
·如何在jsp中使用jdbc来联结mysql_jsp技巧
·如何用jsp读取mysql数据库_jsp技巧
·如何使用jsp访问mysql数据库_jsp技巧
·在linux上建jsp環境_jsp教程
·jsp数据库操作例程(use bean)_jsp实例

最新文章
·通过jdbc连接oracle的十大灵活技术_jsp技巧
·jdbc之代码重复使用_jsp技巧
·提升jsp页面响应速度的七大秘籍绝招_jsp技巧
·jdbc连sql server数据库步骤及有一项操作已被挂起,需重新启动计算机解决办法_jsp技巧
·解决jsp中使用request乱码问题_jsp技巧
·详细的jsp分页(oracle+jsp+apache)_jsp技巧
·jsp中与标签要用不同的方式获得数据库中的数据_jsp技巧
·jsp2.0新特性_jsp文摘
·jsp从数据库取得数据作为下拉菜单选项的实现 _jsp技巧
·实现session登陆时间的验证,验证用户登录页面的一个监听器_jsp技巧


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号