仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1604|回复: 19
打印 上一主题 下一主题

[学习教程] JAVA网页编程之怎样从MIDlet中挪用JSP页面

[复制链接]
愤怒的大鸟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:34:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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流来发送或吸收数据。举个例子,请看上面的这一小段代码,用来设置属性并创建输出/输入流。
  1. //设置HTTP属性
  2. connection.setRequestMethod(HttpConnection.POST);
  3. connection.setRequestProperty("IF-Modified-Since","22Dec200116:33:19GMT");
  4. connection.setRequestProperty("User-Agent","Profile/MIDP-1.0Configuration/CLDC-1.0");
  5. connection.setRequestProperty("Content-Language","en-CA");
  6. //创立I/O流
  7. InputStreamis=connection.openInputStream();
  8. OutputStreamos=connection.openOutputStream();
复制代码
  上面让我们来研讨一个例子,懂得一下怎样从MIDlet中挪用JSP,我们挪用JSP页面代码的程序段1以下所示:

  代码1:
  1. today.jsp
  2. <%!Stringname;%>
  3. <%
  4.  name=request.getParameter("name");
  5.  java.util.Datetoday=newjava.util.Date();
  6.  out.println("Got:"+name);
  7.  out.println("Date&time:"+today);
  8. %>
复制代码
  这个JSP也面但愿获得一个名为name的变量的值,一旦这个值被获得,就会创立一个Date的实例,然后name和date的值就会被打到客户端中的输入流中。

  如今,让我们看看怎样写一个MIDlet来挪用这个JSP页面,我们将利用POST哀求办法来挪用它,这就意味着被传送到JSP页面的数据不是利用URL编码的,而是以一段独自的信息传进,这段MIDlet代码如代码段2所示。
  代码2:
  1. InvokeJSPMidlet.java
  2. importjavax.microedition.lcdui.*;
  3. importjavax.microedition.midlet.*;
  4. importjavax.microedition.io.*;
  5. importjava.io.*;
  6. publicclassInvokeJSPMidletextendsMIDletimplementsCommandListener{;
  7. Displaydisplay=null;
  8. //name字段
  9. TextFieldname=null;
  10. formform;
  11. Stringurl="http://127.0.0.1:8080/examples/jsp/today.jsp";;
  12. staticfinalCommandcallCommand=newCommand("date?",Command.OK,2);
  13. staticfinalCommandclearCommand=newCommand("clear",Command.STOP,2);
  14. Stringmyname;
  15. publicInvokeJSPMidlet(){;
  16. display=Display.getDisplay(this);
  17. name=newTextField("Name:","",25,TextField.ANY);
  18. form=newform("InvokeJSP");
  19. };
  20. publicvoidstartApp()throwsMIDletStateChangeException{;
  21. form.append(name);
  22. form.addCommand(clearCommand);
  23. form.addCommand(callCommand);
  24. form.setCommandListener(this);
  25. display.setCurrent(form);
  26. };
  27. publicvoidpauseApp(){;
  28. };
  29. publicvoiddestroyApp(booleanunconditional){;
  30. notifyDestroyed();
  31. };
  32. voidinvokeJSP(Stringurl)throwsIOException{;
  33. HttpConnectionc=null;
  34. InputStreamis=null;
  35. OutputStreamos=null;
  36. StringBufferb=newStringBuffer();
  37. TextBoxt=null;
  38. try{;
  39.  c=(HttpConnection)Connector.open(url);
  40.  c.setRequestMethod(HttpConnection.POST);
  41.  c.setRequestProperty("IF-Modified-Since","29Dec200115:17:19GMT");
  42.  c.setRequestProperty("User-Agent","Profile/MIDP-1.0Configuration/CLDC-1.0");
  43.  c.setRequestProperty("Content-Language","en-CA");
  44.  c.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
  45.  os=c.openOutputStream();
  46.  os.write(("name="+myname).getBytes());
  47.  os.flush();
  48.  is=c.openDataInputStream();
  49.  intch;
  50.  while((ch=is.read())!=-1){;
  51. b.append((char)ch);
  52. System.out.print((char)ch);
  53.  };
  54.  t=newTextBox("Date",b.toString(),1024,0);
  55.  t.setCommandListener(this);
  56.  };finally{;
  57.  if(is!=null){;
  58. is.close();
  59.  };
  60.  if(os!=null){;
  61. os.close();
  62.  };
  63.  if(c!=null){;
  64. c.close();
  65.  };
  66. };
  67. display.setCurrent(t);
  68. };
  69. publicvoidcommandAction(Commandc,Displayabled){;
  70.  Stringlabel=c.getLabel();
  71.  if(label.equals("clear")){;
  72. destroyApp(true);
  73.  };elseif(label.equals("date?")){;
  74. myname=name.getString();
  75.  try{;
  76. invokeJSP(url);
  77.  };catch(IOExceptione){;};
  78.  };
  79. };
  80. };
复制代码
  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,
柔情似水 该用户已被删除
沙发
发表于 2015-1-21 10:23:14 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
简单生活 该用户已被删除
板凳
发表于 2015-1-25 06:43:30 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
地板
发表于 2015-1-31 18:15:49 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
因胸联盟 该用户已被删除
5#
发表于 2015-2-6 20:48:38 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
飘飘悠悠 该用户已被删除
6#
发表于 2015-2-18 17:10:21 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
老尸 该用户已被删除
7#
发表于 2015-3-1 19:10:20 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
爱飞 该用户已被删除
8#
发表于 2015-3-10 22:11:19 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
透明 该用户已被删除
9#
发表于 2015-3-17 11:09:46 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
灵魂腐蚀 该用户已被删除
10#
发表于 2015-3-21 12:28:18 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
海妖 该用户已被删除
11#
发表于 2015-3-29 22:52:48 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
小妖女 该用户已被删除
12#
发表于 2015-3-29 23:15:49 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
若天明 该用户已被删除
13#
发表于 2015-4-4 22:03:49 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
蒙在股里 该用户已被删除
14#
发表于 2015-4-10 08:58:09 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
愤怒的大鸟 该用户已被删除
15#
 楼主| 发表于 2015-4-24 08:53:54 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
再见西城 该用户已被删除
16#
发表于 2015-5-9 05:11:07 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
谁可相欹 该用户已被删除
17#
发表于 2015-6-4 17:34:44 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
飘灵儿 该用户已被删除
18#
发表于 2015-6-28 11:07:52 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
再现理想 该用户已被删除
19#
发表于 2015-6-28 21:11:38 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
精灵巫婆 该用户已被删除
20#
发表于 2015-7-8 06:18:54 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-29 08:38

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表