变相怪杰 发表于 2015-1-18 11:36:16

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.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.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:15

那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!

admin 发表于 2015-1-24 15:32:23

你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。

海妖 发表于 2015-2-1 20:03:04

设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧

谁可相欹 发表于 2015-2-3 15:50:24

Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

兰色精灵 发表于 2015-2-9 16:56:42

Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台

若相依 发表于 2015-2-14 17:23:47

当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?

飘飘悠悠 发表于 2015-3-4 08:58:47

是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言

小女巫 发表于 2015-3-10 19:11:00

是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言

金色的骷髅 发表于 2015-3-13 23:07:14

是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能

老尸 发表于 2015-3-20 07:34:51

是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言

第二个灵魂 发表于 2015-3-30 08:36:35

是一种突破用户端机器环境和CPU

仓酷云 发表于 2015-4-6 20:11:23

让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。

小魔女 发表于 2015-4-15 04:57:25

J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。

山那边是海 发表于 2015-4-26 15:10:43

你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。

深爱那片海 发表于 2015-4-30 04:14:03

是一种语言,用以产生「小应用程序(Applet(s))

愤怒的大鸟 发表于 2015-5-4 21:37:11

所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。

灵魂腐蚀 发表于 2015-5-6 12:46:05

是一种使网页(Web Page)产生生动活泼画面的语言

透明 发表于 2015-6-7 09:16:58

让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
页: [1]
查看完整版本: JAVA网页设计J2me会见dotnetwerbservice