﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-做事失败可以重来，做人失败却不能重来-随笔分类-ajax</title><link>http://www.blogjava.net/soddabao/category/21160.html</link><description>锻炼肌肉，防止挨揍！    冷面阎罗题</description><language>zh-cn</language><lastBuildDate>Tue, 19 Jun 2007 12:57:06 GMT</lastBuildDate><pubDate>Tue, 19 Jun 2007 12:57:06 GMT</pubDate><ttl>60</ttl><item><title>开发Google Web Toolkit的eclipse插件googlipse</title><link>http://www.blogjava.net/soddabao/archive/2007/06/19/125159.html</link><dc:creator>冷面阎罗</dc:creator><author>冷面阎罗</author><pubDate>Tue, 19 Jun 2007 09:41:00 GMT</pubDate><guid>http://www.blogjava.net/soddabao/archive/2007/06/19/125159.html</guid><wfw:comment>http://www.blogjava.net/soddabao/comments/125159.html</wfw:comment><comments>http://www.blogjava.net/soddabao/archive/2007/06/19/125159.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/soddabao/comments/commentRss/125159.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/soddabao/services/trackbacks/125159.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;昨天看到Google Web Toolkit开发ajax不错，今天上网发现一个Google Web Toolkit&nbsp;的插件googlipse，就去网站下了一个，下载的网站是<a href="http://sourceforge.net/projects/googlipse">http://sourceforge.net/projects/googlipse</a>。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 下载后安装后，发现eclipse没有任何变化，后来一查才知道googlipse需要eclipse3.2，我之前用的3.1都快2年，一直感情不错，实在是舍不得仍掉3.1，没部分要想用googlipse插件就必须用3.2。eclipse3.2还得是带有WebTools Platform 1.5的，eclipse3.2的下载地址是<a href="http://archive.eclipse.org/webtools/downloads/drops/R1.5/R-1.5.0-200606281455/wtp-all-in-one-sdk-R-1.5.0-200606281455-win32.zip">http://archive.eclipse.org/webtools/downloads/drops/R1.5/R-1.5.0-200606281455/wtp-all-in-one-sdk-R-1.5.0-200606281455-win32.zip</a>。使用这个插件还得用昨天下载的gwt-windows-1.4.10。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 下载eclipse和插件，安装(我建议用link方法安装，link方法我就不多说了）安装后，启动eclipse，在window-preferences 你会发现有 googlipse，这里配置你的gwt路径的。&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用googlipse插件新建项目与我们平时新建项目有些不一样<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 首先要新建一个web项目，new-other-web-Dynamic Web Project,记得configurations 下拉选项选择default Googlipse Project。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 然后新建googlipse，new-other-googlipse module，记得source folder选择刚才新建的web项目，输入的名字和包名，包名会自动带进client。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 编写代码的过程我就不多说了。<br>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; 运行的时候，选中项目，点run，然后选择get hosted mode applicatopn，右键new，在newconfigurtion的main tab页面中project选择刚才新建的工程，module选择这个工程下的主类，修改需要的端口号，然后点run即可。 这里的运行和执行cmd运行的效果是一样的。
<img src ="http://www.blogjava.net/soddabao/aggbug/125159.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/soddabao/" target="_blank">冷面阎罗</a> 2007-06-19 17:41 <a href="http://www.blogjava.net/soddabao/archive/2007/06/19/125159.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Google Web Toolkit 入门--ajax的helloworld程序以及解决乱码的方法</title><link>http://www.blogjava.net/soddabao/archive/2007/06/18/124993.html</link><dc:creator>冷面阎罗</dc:creator><author>冷面阎罗</author><pubDate>Mon, 18 Jun 2007 10:40:00 GMT</pubDate><guid>http://www.blogjava.net/soddabao/archive/2007/06/18/124993.html</guid><wfw:comment>http://www.blogjava.net/soddabao/comments/124993.html</wfw:comment><comments>http://www.blogjava.net/soddabao/archive/2007/06/18/124993.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/soddabao/comments/commentRss/124993.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/soddabao/services/trackbacks/124993.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;接触ajax已有很长时间，其实之前只是用了ajax的一个很简单的功能异步发送功能，也就是xmlhttp，发送个xml数据岛。然后感觉ajax不错，也想多研究研究，也买了本书，可是因为工作的原因一直都没怎么看，真是&#8220;书非借不能读&#8221;，有时间要么看电源要么玩游戏了。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Google Web Toolkit(简称GWT)Google推出的Ajax应用开发包，支持开发者使用Java语言开发Ajax应用。GWT框架本身是开源的，但是GWT中的开发工具仅仅提供开发用License，不允许分发。 GWT提供了一组基于Java语言的开发包，这个开发包的设计参考Java AWT包设计，类命名规则、接口设计、事件监听等都和AWT非常类似。熟悉Java AWT的开发者不需要花费多大的力气就能够快速的理解GWT开发工具包，将更多地时间投入到GWT应用的开发过程中。开发出来的Java应用将由GWT开发包提供的编译工具编译后声生成对应的、应用了Ajax技术的Web应用，Java应用中出现的、和服务器之间的交互动作被自动生成的异步调用代码所代替。&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;其实GWT的用法很简单，只要去其官方网站下载就可以，<a href="http://code.google.com/webtoolkit/">http://code.google.com/webtoolkit/</a>。下载包里面有api以及我们程序开发需要的jar。GWT的介绍网上多的很，我就不再说了。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 创建一个helloworld程序，需要作的是，添加GWT_HOME环境变量，然后创建一个文件夹(可以命令mkdi，也可以手动创建)，然后命令行进入这个文件夹，执行<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">set&nbsp;pathD:\Program&nbsp;Files\Java\jdk1.</span><span style="COLOR: #000000">6.0</span><span style="COLOR: #000000">\binD:\Program&nbsp;Files\gwt</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">windows</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1.4</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">10</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 然后就是创建你的client类，不过这个client类的紧挨着的外层包中必须有client，<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">applicationCreator.cmd&nbsp;soddabao.client.HelloWorld</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果使用eclipse开发还可以<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">applicationCreator&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">eclipse&nbsp;HelloWorld&nbsp;sodabao.client.HelloWorld</span></div>
<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;系统自动创建一些文件，包括bin、src以及两个cmd文件<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HelloWorld-compile.cmd 是发布生成程序文件<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HelloWorld-shell.cmd 是开发测试程序用。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 双击HelloWorld-shell.cmd文件就可以执行程序。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果你需要修改，那么就去改jaca类和html文件，至于怎么修改就看自己的需要了.....<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 你下载的gwt-windows-1.4.10中的doc下的javadoc就是我们需要的api文档。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 你会发现上述做起来很简单，但是如果你把java类的setText的内容改为中文，然后执行程序发现了，发现最让我们头疼的乱码，其实这处理的方法很简单。你只需要下面几步就ok了<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.把你要显示的中文&#8220;测试字符串&#8221;输入到一个文件，如:1.txt&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.进入命令行,进入1.txt所在的目录,敲入以下命令:native2ascii.exe 1.txt 2.txt 回车。这样就生成了另外一个文件2.txt。&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.2.txt的内容如下:\u6d4b\u8bd5\u5b57\u7b26\u4e32&nbsp;，把这个考到你的gwt程序中使用就可以了。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 其实就是把汉字转化成&nbsp;Unicode编码。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<img src ="http://www.blogjava.net/soddabao/aggbug/124993.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/soddabao/" target="_blank">冷面阎罗</a> 2007-06-18 18:40 <a href="http://www.blogjava.net/soddabao/archive/2007/06/18/124993.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> web应用的跨越访问的解决方案</title><link>http://www.blogjava.net/soddabao/archive/2007/06/17/124809.html</link><dc:creator>冷面阎罗</dc:creator><author>冷面阎罗</author><pubDate>Sun, 17 Jun 2007 08:17:00 GMT</pubDate><guid>http://www.blogjava.net/soddabao/archive/2007/06/17/124809.html</guid><wfw:comment>http://www.blogjava.net/soddabao/comments/124809.html</wfw:comment><comments>http://www.blogjava.net/soddabao/archive/2007/06/17/124809.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/soddabao/comments/commentRss/124809.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/soddabao/services/trackbacks/124809.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;做过跨越多个网站的Ajax开发的朋友都知道，如果在A网站中，我们希望使用Ajax来获得B网站中的特定内容，如果A网站与B网站不在同一个域中，那么就出现了跨域访问问题。<br>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ajax的跨域访问问题是现有的Ajax开发人员比较常遇到的问题。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IE对于跨域访问的处理是，弹出警告框，提醒用户。如果用户将该网站纳入可信任网站，或者调低安全级别，那么这个问题IE就不会在提醒你。&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FireFox等其它非微软的浏览器遇到跨域访问，则解决方案统一是拒绝访问。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;有人说，IE是主流浏览器，只要它能正常使用就好了。此言差已，IE虽然能够处理，但是是有前提的，要么用户不厌其烦地在页面弹出警告框之后点击是（点击否就不执行该Ajax调用了），要么用户将该网站纳入可信任站点。这两种做法，在企业管理系统的应用中倒是比较常见，因为系统管理员可以以行政手段保证用户的行为。但是对于互联网上的网站或者门户开发，这种做法则不行。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;最近遇到了这个问题，需要在跨域访问结束之后完成使主窗口出现一些特效，搜索了一些资料，通过不断尝试以及在不同浏览器中进行兼容性测试，找到了几个可行的方案：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1、Web代理的方式。即用户访问A网站时所产生的对B网站的跨域访问请求均提交到A网站的指定页面，由该页面代替用户页面完成交互，从而返回合适的结果。此方案可以解决现阶段所能够想到的多数跨域访问问题，但要求A网站提供Web代理的支持，因此A网站与B网站之间必须是紧密协作的，且每次交互过程，A网站的服务器负担增加，且无法代用户保存session状态。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2、on-Demand方式。MYMSN的门户就用的这种方式，不过MYMSN中不涉及跨域访问问题。动态控制script标记的生成，通过修改script标记的src属性完成对跨域页面的调用。此方案存在的缺陷是，script的src属性完成该调用时采取的方式时get方式，如果请求时传递的字符串过大时，可能会无法正常运行。不过此方案非常适合聚合类门户使用。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3、iframe方式。查看过醒来在javaeye上的一篇关于跨域访问的帖子，他提到自己已经用iframe的方式解决了跨域访问问题。数据提交跟获取，采用iframe这种方式的确可以了，但由于父窗口与子窗口之间不能交互（跨域访问的情况下，这种交互被拒绝），因此无法完成对父窗口效果的影响。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4、用户本地转储方式：IE本身依附于windows平台的特性为我们提供了一种基于iframe，利用内存来&#8220;绕行&#8221;的方案，即两个window之间可以在客户端通过windows剪贴板的方式进行数据传输，只需要在接受数据的一方设置Interval进行轮询，获得结果后清除Interval即可。FF的平台独立性决定了它不支持剪贴板这种方式，而以往版本的FF中存在的插件漏洞又被fixed了，所以FF无法通过内存来完成暗渡陈仓。而由于文件操作FF也没有提供支持（无法通过Cookie跨域完成数据传递），致使这种技巧性的方式只能在IE中使用。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5、我自己用于解决这类问题的方式：结合了前面几种方式，在访问A网站时，先请求B网站完成数据处理，再根据返回的标识来获得所需的结果。这种方法的缺点也很明显，B网站的负载增大了。优点，对session也实现了保持，同时A网站与B网站页面间的交互能力增强了。最重要的一点，这种方案满足了我的全部需要.</p>
<img src ="http://www.blogjava.net/soddabao/aggbug/124809.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/soddabao/" target="_blank">冷面阎罗</a> 2007-06-17 16:17 <a href="http://www.blogjava.net/soddabao/archive/2007/06/17/124809.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ajax中获取xmlHttp对象方法 </title><link>http://www.blogjava.net/soddabao/archive/2007/04/01/107756.html</link><dc:creator>冷面阎罗</dc:creator><author>冷面阎罗</author><pubDate>Sun, 01 Apr 2007 06:34:00 GMT</pubDate><guid>http://www.blogjava.net/soddabao/archive/2007/04/01/107756.html</guid><wfw:comment>http://www.blogjava.net/soddabao/comments/107756.html</wfw:comment><comments>http://www.blogjava.net/soddabao/archive/2007/04/01/107756.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/soddabao/comments/commentRss/107756.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/soddabao/services/trackbacks/107756.html</trackback:ping><description><![CDATA[ xmlhttp对象的获取与ie浏览器的版本有很大的关系，我们不能ActiveXObject(<span style="COLOR: #000000">"</span><span style="COLOR: #000000">Microsoft.XMLHTTP</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)一个对象，这样在大多数情况下是没有问题的，但是在有些ie中，这样new是不行的，所有我们获取xmlhttp对象是不能这样的。<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id="Codehighlighter1_19_493_Open_Image" onclick="this.style.display='none'; Codehighlighter1_19_493_Open_Text.style.display='none'; Codehighlighter1_19_493_Closed_Image.style.display='inline'; Codehighlighter1_19_493_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_19_493_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_19_493_Closed_Text.style.display='none'; Codehighlighter1_19_493_Open_Image.style.display='inline'; Codehighlighter1_19_493_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="COLOR: #000000">function XMLHTTP() </span><span id="Codehighlighter1_19_493_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_19_493_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    var xmlHTTP;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    var msxmlhttp </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Array(<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">Msxml2.XMLHTTP.5.0</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">,<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">Msxml2.XMLHTTP.4.0</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">,<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">Msxml2.XMLHTTP.3.0</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">,<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">Msxml2.XMLHTTP</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">,<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">Microsoft.XMLHTTP</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">);<br /><img id="Codehighlighter1_242_377_Open_Image" onclick="this.style.display='none'; Codehighlighter1_242_377_Open_Text.style.display='none'; Codehighlighter1_242_377_Closed_Image.style.display='inline'; Codehighlighter1_242_377_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_242_377_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_242_377_Closed_Text.style.display='none'; Codehighlighter1_242_377_Open_Image.style.display='inline'; Codehighlighter1_242_377_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000"> (var i </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">; i </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000"> msxmlhttp.length; i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">) </span><span id="Codehighlighter1_242_377_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_242_377_Open_Text"><span style="COLOR: #000000">{<br /><img id="Codehighlighter1_256_321_Open_Image" onclick="this.style.display='none'; Codehighlighter1_256_321_Open_Text.style.display='none'; Codehighlighter1_256_321_Closed_Image.style.display='inline'; Codehighlighter1_256_321_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_256_321_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_256_321_Closed_Text.style.display='none'; Codehighlighter1_256_321_Open_Image.style.display='inline'; Codehighlighter1_256_321_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"> </span><span id="Codehighlighter1_256_321_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_256_321_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            xmlHTTP </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> ActiveXObject(msxmlhttp[i]);<br /><img id="Codehighlighter1_333_371_Open_Image" onclick="this.style.display='none'; Codehighlighter1_333_371_Open_Text.style.display='none'; Codehighlighter1_333_371_Closed_Image.style.display='inline'; Codehighlighter1_333_371_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_333_371_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_333_371_Closed_Text.style.display='none'; Codehighlighter1_333_371_Open_Image.style.display='inline'; Codehighlighter1_333_371_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        }</span></span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> (e) </span><span id="Codehighlighter1_333_371_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_333_371_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            xmlHTTP </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">xmlHTTP </span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000"> typeof XMLHttpRequest </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">undefined</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    xmlHTTP </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> XMLHttpRequest();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> xmlHTTP;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div></span><img src ="http://www.blogjava.net/soddabao/aggbug/107756.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/soddabao/" target="_blank">冷面阎罗</a> 2007-04-01 14:34 <a href="http://www.blogjava.net/soddabao/archive/2007/04/01/107756.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]关于AJAX的几个概念</title><link>http://www.blogjava.net/soddabao/archive/2007/03/15/104083.html</link><dc:creator>冷面阎罗</dc:creator><author>冷面阎罗</author><pubDate>Thu, 15 Mar 2007 12:22:00 GMT</pubDate><guid>http://www.blogjava.net/soddabao/archive/2007/03/15/104083.html</guid><wfw:comment>http://www.blogjava.net/soddabao/comments/104083.html</wfw:comment><comments>http://www.blogjava.net/soddabao/archive/2007/03/15/104083.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/soddabao/comments/commentRss/104083.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/soddabao/services/trackbacks/104083.html</trackback:ping><description><![CDATA[
		<p>书归正传，AJAX其实不是一种语言，甚至不是一种技术，它是几种技术的有机结合（Javascript、XML、CSS等等，其实有时还会用到更多的技术，比如偶钟情滴java^_^，就像推War3，要多个兵种加起来用才够厉害。。。跑题了~~~~）。Javascript作为脚本语言，用Javascript操作XML和CSS，用XML做为数据的存储介质，用CSS显示效果和状态。</p>
		<p>这里不得不提的一项内容就是XMLHttpRequest，偶认为这是真正Ajax的核心东东（可能是偶见识太少了- -！），它可以模拟Request对象向服务器提交请求，并返回请求结果，这就摒弃了原有的让人等的好烦的白白的浏览器显示页！！用句不怎么术的术语说就是“动态无刷新”。废话不说，来看看这么强大的DD是怎么实现的~~~</p>
		<p>不同的浏览器实现的方式不一样，对于Mozilla, Firefox, Safari, 和Netscape浏览器：</p>
		<p>
				<font style="COLOR: #3366ff" face="Verdana" size="2">var xmlhttp=new XMLHttpRequest()</font>
		</p>
		<p>对于Internet Explorer：</p>
		<p>
				<font style="COLOR: #3366ff" face="Verdana" size="2">var xmlhttp=CreatActiveObject("Micosoft.XMLHttp")</font>
		</p>
		<p>编程要点：</p>
		<p>---------------------------属性--------------------------------</p>
		<table border="1">
				<tbody>
						<tr>
								<td>属性</td>
								<td>值类型</td>
								<td>说明</td>
						</tr>
						<tr>
								<td>onreadystatechange</td>
								<td>回调函数名称的字符串</td>
								<td>指明回调函数</td>
						</tr>
						<tr>
								<td>readyState</td>
								<td>请求状态代码，共四种状态：<br />0    未初始化<br />1    正在装载<br />2    装载完毕<br />3    交互中<br />4    完成<br /></td>
								<td>XMLHttpRequest对象的请求状态</td>
						</tr>
						<tr>
								<td>responseText</td>
								<td>返回数据的字符串形式</td>
								<td>以字符串形式存储该请求返回的数据</td>
						</tr>
						<tr>
								<td>responseXML</td>
								<td>返回一个Xml Document对象</td>
								<td>以XML数据形式存储请求返回的数据</td>
						</tr>
						<tr>
								<td>status</td>
								<td>请求所返回的HTTP返回码：<br />"100" : Continue <br />"101" : witching Protocols <br />"200" : OK <br />"201" : Created <br />"202" : Accepted <br />"203" : Non-Authoritative Information <br />"204" : No Content <br />"205" : Reset Content <br />"206" : Partial Content <br />"300" : Multiple Choices <br />"301" : Moved Permanently <br />"302" : Found <br />"303" : See Other <br />"304" : Not Modified <br />"305" : Use Proxy <br />"307" : Temporary Redirect <br />"400" : Bad Request <br />"401" : Unauthorized <br />"402" : Payment Required <br />"403" : Forbidden <br />"404" : Not Found <br />"405" : Method Not Allowed <br />"406" : Not Acceptable <br />"407" : Proxy Authentication Required <br />"408" : Request Time-out <br />"409" : Conflict <br />"410" : Gone <br />"411" : Length Required <br />"412" : Precondition Failed <br />"413" : Request Entity Too Large <br />"414" : Request-URI Too Large <br />"415" : Unsupported Media Type <br />"416" : Requested range not satisfiable <br />"417" : Expectation Failed <br />"500" : Internal Server Error <br />"501" : Not Implemented <br />"502" : Bad Gateway <br />"503" : Service Unavailable <br />"504" : Gateway Time-out <br />"505" : HTTP Version not supported<br /><p>其实实际用的时候记着200是OK（本地调试时OK状态会返回0），404是NO FOUND就可以了！</p></td>
								<td>该XMLHttpRequest所做的请求返回的HTTP返回码</td>
						</tr>
						<tr>
								<td>statusText</td>
								<td>字符串，此属性只读，以BSTR返回当前请求的响应行状态,此属性仅当数据发送并接收完毕后才可获取。 </td>
								<td>XMLHttpRequest所做的Http请求返回信息</td>
						</tr>
				</tbody>
		</table>
		<p>---------------------------方法---------------------------</p>
		<table border="1">
				<tbody>
						<tr>
								<td>方法</td>
								<td>参数</td>
								<td>返回值</td>
								<td>说明</td>
						</tr>
						<tr>
								<td>abort()</td>
								<td>无</td>
								<td>无</td>
								<td>取消当前的请求</td>
						</tr>
						<tr>
								<td>getAllResponseHeaders()</td>
								<td>无</td>
								<td>以字符串形式返回所有的HTTP头</td>
								<td>以字符串形式返回所有的HTTP头</td>
						</tr>
						<tr>
								<td>getResponseHeader("headerName")</td>
								<td>headerName参数指定的http头字符串</td>
								<td>返回指定的HTTP头字符串</td>
								<td>从响应信息中获取指定的http头</td>
						</tr>
						<tr>
								<td>open('method','URL',async,'uname','pswd') </td>
								<td>method字符串指定用何方法发送请求，比如POST、GET、PUT及PROPFIND。大小写不敏感<br />URL字符串指定请求的HTTP地址，可以为绝对路径也可以为相对路径<br />async布尔值指定请求是否为异步方式，默认为true。如果为真，当状态改变时会调用onreadystatechange属性指定的回调函数。<br />uname字符串指定用于服务器验证用户名，如果服务器需要验证，此处指定用户名，如果未指定，当服务器需要验证时，会弹出验证窗口。<br />pswd字符串指定验证信息中的密码部分，如果用户名为空则此部分被忽略。<br /></td>
								<td>无</td>
								<td>创建一个新的http请求，并指定此请求的方法、URL以及验证信息</td>
						</tr>
						<tr>
								<td>send(content)</td>
								<td>content参数可以是任何想发送到服务器端的数据</td>
								<td>无</td>
								<td>发送请求到http服务器并接收回应，此方法的同步或异步方式取决于open方法中的bAsync参数，如果bAsync == False，此方法将会等待请求完成或者超时时才会返回，如果bAsync == True，此方法将立即返回。如果发送的数据为XML DOM object，则回应将被编码为在xml文档中声明的编码，如果在xml文档中没有声明编码，则使用默认的UTF-8。</td>
						</tr>
						<tr>
								<td>setRequestHeader("label","value")</td>
								<td>label字符串指定头名称<br />value字符串指定头的值</td>
								<td>
								</td>
								<td>单独指定请求的某个http头，如果已经存在已此名称命名的http头，则覆盖之。此方法必须在open方法后调用。 </td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.blogjava.net/soddabao/aggbug/104083.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/soddabao/" target="_blank">冷面阎罗</a> 2007-03-15 20:22 <a href="http://www.blogjava.net/soddabao/archive/2007/03/15/104083.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTTP请求发送XML数据</title><link>http://www.blogjava.net/soddabao/archive/2007/01/25/95951.html</link><dc:creator>冷面阎罗</dc:creator><author>冷面阎罗</author><pubDate>Thu, 25 Jan 2007 07:36:00 GMT</pubDate><guid>http://www.blogjava.net/soddabao/archive/2007/01/25/95951.html</guid><wfw:comment>http://www.blogjava.net/soddabao/comments/95951.html</wfw:comment><comments>http://www.blogjava.net/soddabao/archive/2007/01/25/95951.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/soddabao/comments/commentRss/95951.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/soddabao/services/trackbacks/95951.html</trackback:ping><description><![CDATA[
		<p>      http请求发送一些简单的数据,大家应该知道,直接在url后加"?参数名=参数值&amp;参数名=参数值&amp;",但是数据过多,这样发送就不可以,不管post还是get数据量超过2m好像都不行.当数据量大的时候可以采用xml格式,发送,此时发送方法就要改一下,不能在url地址后面加参数了,这是要用到</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">                 var Http </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000"> ActiveXObject(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">Microsoft.XMLHTTP</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">) <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                    Http.open(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">POST</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">,GZURL,</span>
				<span style="COLOR: #0000ff">false</span>
				<span style="COLOR: #000000">) <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                    Http.setRequestHeader(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">CONTENT-TYPE</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">text/xml; charset = gb2312</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                 Http.send(message) </span>
		</div>       在httpserver中接受  
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">        request.setCharacterEncoding(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">GB2312</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        ServletInputStream inStream </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> request.getInputStream();</span></div><br />        接受到的数据为一个流,流中包含xml数据,如果直接对流操作,转化成string然后再操作就有些麻烦了.此时用jdom操作这个xml的流,直接生成xml对象<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">SAXBuilder sb </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> SAXBuilder(); </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 新建立构造器</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">            doc </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> sb.build(inStream);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            Element root </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> (Element) doc.getRootElement();</span></div>        对这个xml的doc对象操作,想必大家应该会吧!先得到根节点,然后再得到子节点.....<img src ="http://www.blogjava.net/soddabao/aggbug/95951.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/soddabao/" target="_blank">冷面阎罗</a> 2007-01-25 15:36 <a href="http://www.blogjava.net/soddabao/archive/2007/01/25/95951.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>