仓酷云
标题:
JAVA网页设计J2me会见dotnetwerbservice
[打印本页]
作者:
变相怪杰
时间:
2015-1-18 11:36
标题:
JAVA网页设计J2me会见dotnetwerbservice
一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。会见J2me会见dotnetwerbservice[分享]
Postby:chinapeople@2003-9-2112:51:55
1.思绪:利用j2me中自己自带的HttpConnection会见webservice,挪用http://localhost/RoadWebService/RoadWS.asmx/中的办法WebServiceTest,参数为param。以下:
privatevoidconnect(){
HttpConnectionhc=null;
//InputStreamin=null;
DataInputStreamin=null;
Strings="";
Stringurl="http://localhost/RoadWebService/RoadWS.asmx/WebServiceTest?param="+inputTextField.getString();
try{
hc=(HttpConnection)Connector.open(url);
intch;
in=hc.openDataInputStream();
while((ch=in.read())!=-1){
s=s+(char)ch;
}
//Strings=in.readUTF();
in.close();
hc.close();
mMessageItem.setText(s);
}
catch(IOExceptionioe){
mMessageItem.setText(ioe.toString());
}
//mDisplay.setCurrent(mMainform);
String[]items;
//此处是对的到的字符串S举行XML剖析。
items=parseUsingkXML(s);
mDisplay.setCurrent(newItemList(items));
}
这时候候的到的字符串流是XML格局的,以下:hellozl
利用第三方的CLDCh境下作的_放原始aXML剖析器──kXML,http://www.kxml.org/下dkXML包。对猎取的XML格局的数据流举行剖析,办法以下:
privateString[]parseUsingkXML(Stringxml){
try{
ByteArrayInputStreambin=
newByteArrayInputStream(
xml.getBytes());
InputStreamReaderin=newInputStreamReader(bin);
XmlParserparser=newXmlParser(in);
Vectoritems=newVector();
parsekXMLItems(parser,items);
System.out.println(items.size());
String[]tmp=newString[items.size()];
items.copyInto(tmp);
returntmp;
}
catch(IOExceptione){
returnnewString[]{e.toString()};
}
}
privatevoidparsekXMLItems(XmlParserparser,Vectoritems)
throwsIOException{
booleaninItem=false;
while(true){
ParseEventevent=parser.read();
switch(event.getType()){
caseXml.START_TAG:
if(event.getName().equals("string")){
inItem=true;
}
break;
caseXml.END_TAG:
if(event.getName().equals("string")){
inItem=false;
}
break;
caseXml.TEXT:
if(inItem){
items.addElement(event.getText());
}
break;
caseXml.END_DOCUMENT:
return;
}
}
}
classItemListextendsListimplementsCommandListener{
ItemList(String[]list){
super("Items",IMPLICIT,list,null);
addCommand(mExitCommand);
setCommandListener(this);
}
publicvoidcommandAction(Commandc,Displayabled){
if(c==mExitCommand){
exitMIDlet();
}
}
}
经由函数parsekXMLItems的剖析后数据将输入至Items中,并用于显现。
附录1:
dotnet中的webservice的办法webservicetest(详细的创建一个dotnetwebservie请参考其他材料):
PublicFunctionWebServiceTest(ByValparamAsString)AsString
Ifparam="cqy"Then
WebServiceTest="hellocqy"
ElseIfparam="zl"Then
WebServiceTest="hellozl"
ElseIfparam="zy"Then
WebServiceTest="hellozy"
Else
WebServiceTest="whoareyou"
EndIf
EndFunction
附录2
客户端j2me源代码://HttpMidlet.java
importjava.io.*;
importjava.util.*;
importjavax.microedition.io.*;
importjavax.microedition.lcdui.*;
importjavax.microedition.midlet.*;
importorg.kxml.*;
importorg.kxml.parser.*;
publicclassHttpMidlet
extendsMIDlet
implementsCommandListener{
privateDisplaymDisplay;
privateFormmMainform;
privateStringItemmMessageItem;
privateCommandmExitCommand,mConnectCommand;
privatefinalTextFieldinputTextField;
publicHttpMidlet(){
mMainform=newForm("HitMIDlet");
mMessageItem=newStringItem(null,"");
mExitCommand=newCommand("加入",Command.EXIT,0);
mConnectCommand=newCommand("毗连",
Command.SCREEN,0);
mMainform.append(mMessageItem);
inputTextField=newTextField("Inputtext","",128,TextField.ANY);
mMainform.append(inputTextField);
mMainform.addCommand(mExitCommand);
mMainform.addCommand(mConnectCommand);
mMainform.setCommandListener(this);
}
publicvoidstartApp(){
mDisplay=Display.getDisplay(this);
mDisplay.setCurrent(mMainform);
}
publicvoidexitMIDlet(){
notifyDestroyed();
}
publicvoidpauseApp(){}
publicvoiddestroyApp(booleanunconditional){}
publicvoidcommandAction(Commandc,Displayables){
if(c==mExitCommand)
notifyDestroyed();
elseif(c==mConnectCommand){
Formwaitform=newForm("Waiting...");
mDisplay.setCurrent(waitform);
Threadt=newThread(){
publicvoidrun(){
connect();
}
};
t.start();
}
}
privatevoidconnect(){
HttpConnectionhc=null;
//InputStreamin=null;
DataInputStreamin=null;
Strings="";
Stringurl="http://localhost/RoadWebService/RoadWS.asmx/WebServiceTest?param="+inputTextField.getString();
try{
hc=(HttpConnection)Connector.open(url);
intch;
in=hc.openDataInputStream();
while((ch=in.read())!=-1){
s=s+(char)ch;
}
//Strings=in.readUTF();
in.close();
hc.close();
mMessageItem.setText(s);
}
catch(IOExceptionioe){
mMessageItem.setText(ioe.toString());
}
//mDisplay.setCurrent(mMainform);
String[]items;
items=parseUsingkXML(s);
mDisplay.setCurrent(newItemList(items));
}
privateString[]parseUsingkXML(Stringxml){
try{
ByteArrayInputStreambin=
newByteArrayInputStream(
xml.getBytes());
InputStreamReaderin=newInputStreamReader(bin);
XmlParserparser=newXmlParser(in);
Vectoritems=newVector();
parsekXMLItems(parser,items);
System.out.println(items.size());
String[]tmp=newString[items.size()];
items.copyInto(tmp);
returntmp;
}
catch(IOExceptione){
returnnewString[]{e.toString()};
}
}
privatevoidparsekXMLItems(XmlParserparser,Vectoritems)
throwsIOException{
booleaninItem=false;
while(true){
ParseEventevent=parser.read();
switch(event.getType()){
caseXml.START_TAG:
if(event.getName().equals("string")){
inItem=true;
}
break;
caseXml.END_TAG:
if(event.getName().equals("string")){
inItem=false;
}
break;
caseXml.TEXT:
if(inItem){
items.addElement(event.getText());
}
break;
caseXml.END_DOCUMENT:
return;
}
}
}
classItemListextendsListimplementsCommandListener{
ItemList(String[]list){
super("Items",IMPLICIT,list,null);
addCommand(mExitCommand);
setCommandListener(this);
}
publicvoidcommandAction(Commandc,Displayabled){
if(c==mExitCommand){
exitMIDlet();
}
}
}
}
用wtk2.0创建project,称号为HttpMidlet,类称号为HttpMidlet
将HttpMidlet.java文件拷贝至wtk目次下的appsHttpMidlet的src目次下,将第三方kxml文件ksoap-midp.zip拷贝至appsHttpMidletlib目次下,编译便可。
他们对jsp,servlet,javabean进行封装就是为了展示他们的某个思想,与java的开发并没有必然的关系,也不见得在所以情况下,别人使用起来会简单。
作者:
若天明
时间:
2015-1-19 19:24
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
作者:
admin
时间:
2015-1-24 15:32
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
作者:
海妖
时间:
2015-2-1 20:03
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
作者:
谁可相欹
时间:
2015-2-3 15:50
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
作者:
兰色精灵
时间:
2015-2-9 16:56
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
作者:
若相依
时间:
2015-2-14 17:23
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
作者:
飘飘悠悠
时间:
2015-3-4 08:58
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
作者:
小女巫
时间:
2015-3-10 19:11
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
作者:
金色的骷髅
时间:
2015-3-13 23:07
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
作者:
老尸
时间:
2015-3-20 07:34
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
作者:
第二个灵魂
时间:
2015-3-30 08:36
是一种突破用户端机器环境和CPU
作者:
仓酷云
时间:
2015-4-6 20:11
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
作者:
小魔女
时间:
2015-4-15 04:57
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
作者:
山那边是海
时间:
2015-4-26 15:10
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
作者:
深爱那片海
时间:
2015-4-30 04:14
是一种语言,用以产生「小应用程序(Applet(s))
作者:
愤怒的大鸟
时间:
2015-5-4 21:37
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
作者:
灵魂腐蚀
时间:
2015-5-6 12:46
是一种使网页(Web Page)产生生动活泼画面的语言
作者:
透明
时间:
2015-6-7 09:16
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
欢迎光临 仓酷云 (http://www.ckuyun.com/)
Powered by Discuz! X3.2