﻿<?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/Crying/category/25497.html</link><description>如 果 敌 人 让 你 生 气 , 那 说 明 你 没 有 胜 他 的 把 握！ 
</description><language>zh-cn</language><lastBuildDate>Thu, 15 May 2008 01:39:49 GMT</lastBuildDate><pubDate>Thu, 15 May 2008 01:39:49 GMT</pubDate><ttl>60</ttl><item><title>json</title><link>http://www.blogjava.net/Crying/articles/200504.html</link><dc:creator>Crying</dc:creator><author>Crying</author><pubDate>Wed, 14 May 2008 14:17:00 GMT</pubDate><guid>http://www.blogjava.net/Crying/articles/200504.html</guid><wfw:comment>http://www.blogjava.net/Crying/comments/200504.html</wfw:comment><comments>http://www.blogjava.net/Crying/articles/200504.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Crying/comments/commentRss/200504.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Crying/services/trackbacks/200504.html</trackback:ping><description><![CDATA[原文地址：<a href="http://www.matrix.org.cn/resource/article/2007-03-28/JSON_96339d41-dcc3-11db-973c-874ba584761d.html">http://www.matrix.org.cn/resource/article/2007-03-28/JSON_96339d41-dcc3-11db-973c-874ba584761d.html</a><br />
<br />
<a href="http://www.matrix.org.cn/resource/article/2007-03-28/user.shtml?userid=86552">liusf</a> 发表于 2007-03-28 08:30:53<br />
作者:liusf&nbsp;&nbsp;&nbsp;&nbsp; 来源:JSON<br />
评论数:12 点击数:1,425&nbsp;&nbsp;&nbsp;&nbsp; 投票总得分:0 投票总人次:0<br />
关键字:JSON <br />
<div class="center">
<h4>摘要:</h4>
毫无疑问，AJAX已经成为当今Web开发中一种强有力的用户交互技术，但是它的许多可能性应用仍然鲜为人知。在本文中，我们将来共同探讨如何使用JavaScript对象标志(JSON)和JSON分析器在服务器和客户端AJAX引擎之间创建复杂而强有力的JSON数据传输层。 </div>
<div class="right">
<div class="help">&nbsp;</div>
</div>
<!-- end of summary line -->
<div class="overflow" id="text">&nbsp;&nbsp;&nbsp;&nbsp;本文将解释如何使用AJAX和JSON分析器在客户端和服务器之间创建复杂的JSON数据传输层。<br />
<br />
　　<strong>一、 引言</strong><br />
<br />
　　毫无疑问，AJAX已经成为当今Web开发中一种强有力的用户交互技术，但是它的许多可能性应用仍然鲜为人知。在本文中，我们将来共同探讨如何使用JavaScript对象标志(JSON)和JSON分析器在服务器和客户端AJAX引擎之间创建复杂而强有力的JSON数据传输层。我们将详细讨论如何创建一组对象(在其它语言中经常被当作一个包)，如何把这些对象串行化为JSON以发送到服务器端，以及如何把服务器端JSON反串行化为客户端JavaScript对象。<br />
<br />
　　提示：你可以在Douglas Crockford的网站上找到本文中使用的JSON分析器。<br />
<br />
　　在继续阅读前，本文假定你已经掌握了JavaScript技术并且了解如何创建一个基本的AJAX引擎，并经由AJAX技术向服务器端发出请求和从服务器端接收响应。为了更好地理解本文中示例，你需要下载本文相应的源码文件。<br />
<br />
　　<strong>二、 开始</strong><br />
<br />
　　为了进一步抽象我们的AJAX请求并有助于我们以后在不同的应用程序间共享AJAX引擎代码，本文使用了一个我自己创建的AJAX引擎。为了使用这个引擎，我们简单地导入三个JavaScript文件并且向一个名为AjaxUpdater的对象发出请求。然后，由该引擎来负责处理其它任务，包括把响应代理到在该请求中指定的回调方法中。下面的示例展示了我们如何使用这个引擎发出请求以及导入相关的文件：<br />
<br />
以下是引用片段：<br />
<pre class="overflow">＜script type="text/javascript"src="javascript/model/Ajax.js"＞＜/script＞ <br />
＜script type="text/javascript" src="javascript/model/HTTP.js"＞＜/script＞ <br />
＜script type="text/javascript" src="javascript/model/AjaxUpdater.js"＞＜/script＞ <br />
＜script type="text/javascript"＞ <br />
document.load = AjaxUpdater.Update(&#8217;GET&#8217;， URL， callback); <br />
＜/script＞ </pre>
<br />
<br />
<br />
　　首先，让我们来讨论JavaScript对象。<br />
<br />
<strong>三、 JavaScript对象</strong><br />
<br />
　　JavaScript以前经常被误解，似乎它主要用于实现客户浏览器端图形效果。其实，JavaScript是一种强有力的语言，特别当它与AJAX以及一个应用程序的服务器端相结合时;但是，即使在客户端，JavaScript也能够实现远比你预料得多的多的功能。面向对象的JavaScript就是一个示例，它能够使我们创建对象，扩展内在对象，甚至能够把我们的对象创建成包以达到更容易的管理之目的。<br />
<br />
　　在本文示例中，我们将创建三个对象：Auto，Car和Wheel。其中，每一个都是简单的对象;在此，我们仅使用它们来展示如何创建一个基本包。<br />
<br />
　　首先，Auto对象被声明为一个新的对象：<br />
<br />
以下是引用片段：<br />
　　
<pre class="overflow">var Auto = new Object(); </pre>
<br />
<br />
<br />
　　注意，这个Auto对象将用作Car对象的父类。因此，Car对象将成为Auto对象的一个属性，只不过它被分离到另一个文件中以更易于管理(这个概念经常被用于其它面向对象的语言中，但是在JavaScript中却并不经常提起它)。下面是这个Car对象相应的代码：<br />
<br />
以下是引用片段：<br />
<pre class="overflow">　　Auto.Car = new Object(); <br />
　　Auto.Car.color = "#fff"; <br />
　　Auto.Car.setColor = function(_color) <br />
　　{ <br />
　　Auto.Car.color = _color; <br />
　　} <br />
　　Auto.Car.setColor("#333"); </pre>
<br />
<br />
<br />
　　如你所见，该Car对象是Auto对象的一个子对象—这分明是一种类对象层次结构。这个对象有一个名为color的属性和一个用于设置它的方法。在此，我们把color属性设置为灰色以覆盖掉缺省的白色。当在后面我们串行化该对象时请牢记住这个事实。<br />
<br />
　　下一个对象，Wheel，是Car的一个子对象：<br />
<br />
以下是引用片段：<br />
<pre class="overflow">Auto.Car.Wheel = new Object(); <br />
Auto.Car.Wheel.color = "#000"; </pre>
<br />
<br />
<br />
　　在此，Wheel是一个基本对象，但是它展示了对象层次中的又一个层。这个对象有一个称为color的缺省值为黑色(&#8220;#000&#8221;)的属性。<br />
<br />
　　下面，让我们来分析一下为什么这些对象如此重要以及我们是如何使用它们提供的简单的属性的。<br />
<br />
<strong>四、 把JavaScript对象串行化为JSON</strong><br />
<br />
　　借助于JSON分析器，我们可以很容易地把刚才创建的JavaScript对象串行化为JSON。首先，我们需要下载该分析器的一个副本，并且要把它添加到文档中。下面是我在本文示例中用于导入该脚本的相应的代码：<br />
<br />
以下是引用片段：<br />
<pre class="overflow">＜script type="text/javascript" src="javascript/utils/jsonparser.js"＞＜/script＞ </pre>
<br />
<br />
<br />
　　我已经把该分析器添加到我的javascript目录，即一个称为utils的子目录下。<br />
<br />
　　下面是最终的包括到其中用于导入适当的JavaScript文件的代码片断：<br />
<br />
以下是引用片段：<br />
<pre class="overflow">＜script type="text/javascript" src="javascript/Auto.js"＞＜/script＞<br />
＜script type="text/javascript" src="javascript/Car.js"＞＜/script＞<br />
＜script type="text/javascript" src="javascript/Wheel.js"＞＜/script＞<br />
＜script type="text/javascript" src="javascript/utils/jsonparser.js"＞＜/script＞<br />
＜script type="text/javascript" src="javascript/model/Ajax.js"＞＜/script＞<br />
＜script type="text/javascript" src="javascript/model/HTTP.js"＞＜/script＞<br />
＜script type="text/javascript" src="javascript/model/AjaxUpdater.js"＞＜/script＞ </pre>
<br />
<br />
<br />
　　在导入适当的文件后，我们可以通过把两个div元素和一个onload事件简单地添加到HTML文档中开始串行化。这两个div元素将分别拥有ID：body和loading。其中，这个loading标签将由AJAX引擎使用来指示进度情况，而body标签将用于显示消息。<br />
<br />
<pre class="overflow">以下是引用片段：<br />
＜div id="loading"＞＜/div＞<br />
＜div id="body"＞＜/div＞ </pre>
<br />
<br />
<br />
<br />
　　onload事件相应于body元素并且设置它的innerHTML属性为JavaScript对象(作为一个串行化的JSON字符串)。为了实现这一目的，我在Auto对象上使用了jsonparser.js文件内的toJSONString方法：<br />
<br />
以下是引用片段：<br />
<pre class="overflow">＜body onload="document.getElementById(&#8217;body&#8217;).innerHTML = &#8217;＜b＞Local objects serialized as JSON＜/b＞<br />
Auto Object: &#8217;+ Auto.toJSONString();"＞ </pre>
<br />
<br />
<br />
　　这段代码使用了Auto对象及其所有的子对象，并且使用JSON分析器的toJSONString方法把它们串行化为一个JSON字符串。然后，该数据可以被用作服务器端的一种数据交换格式。<br />
<br />
　　你可能还记得，在前面我们曾调用了一个称为setColor的方法来改变Car对象的颜色。当时，我使用它是因为我想向你展示串行化能够在运行时刻的任何点上实现，而且还为了反映出对象中最新的数据。<br />
<br />
　　如果你仔细分析一下onload事件，你会注意到，Car和Wheel对象都包装在方括号内，这些方括号代表了父对象(即Auto)。这意味着，该串行化的JavaScript对象能够在运行时刻被发送到服务器端以存储最新的数据，并且也可以在应用程序启动时从服务器端进行接收以便从数据库中检索多数的当前数据。最精彩的部分在于，为了创建一种&#8220;无缝&#8221;的过程，所有与服务器之间实现的数据交换都可以使用JSON技术来实现。<br />
<br />
　　下面，让我们来看一下相同的数据是如何从服务器端接收的，以及它们是如何被使用最新的数据(典型地，来源于一个数据库)串行化为客户端JavaScript对象的。<br />
<br />
<strong>五、 把JSON反串行化为客户端JavaScript对象</strong><br />
<br />
　　在本文中，我简单地把一个静态文件创建为JSON响应，但是在实际开发中，你可以把这些数据存储在一个数据库中并且使用一种服务器端语言返回它。基于这一能力，我们就可以轻松地创建一种强有力的数据交换过程!在前面，我们已经分析了这一串行化过程。凭基本的AJAX体验，你应该能够理解数据是如何被寄送到服务器端的。现在，让我们着手讨论反串行化的问题。首先来看一个针对本文示例提供的静态JSON文件。这个文件其实是我们在上一节中串行化的数据：<br />
<br />
以下是引用片段：<br />
<pre class="overflow">{"Car":{"color":"#333"，"Wheel":{"color":"#000"}}} </pre>
<br />
<br />
<br />
　　作为一个请求JSON文件的示例，当我们点击下列链接时将请求这个串行化的Auto对象：<br />
<br />
以下是引用片段：<br />
<pre class="overflow">＜a href="javascript:AjaxUpdater.Update(&#8217;GET&#8217;， &#8217;json/data.js&#8217;， displayResponse);"＞Get remote JSON＜/a＞ </pre>
<br />
<br />
<br />
　　一旦接收到响应消息，我们的称为displayResponse回调方法就会被激活，然后，我们就能够反串行化并开始使用这些对象：<br />
<br />
以下是引用片段：<br />
<pre class="overflow">＜script type="text/javascript"＞ <br />
function displayResponse() <br />
{ <br />
　if(Ajax.checkReadyState(&#8217;loading&#8217;) == "OK") <br />
　{ <br />
　　var Auto = Ajax.request.responseText.parseJSON(); <br />
　　document.getElementById("body").innerHTML += " <br />
＜b＞Remote JSON unserialized＜/b＞"; <br />
　　document.getElementById("body").innerHTML += " <br />
Car color: "+Auto.Car.color; <br />
　　document.getElementById("body").innerHTML += " <br />
Wheel color: "+Auto.Car.Wheel.color; <br />
　} <br />
} <br />
＜/script＞ </pre>
<br />
<br />
<br />
　　这是相当激动人心的一部分!一旦我们拥有了该responseText，我们就能够简单地使用JSON分析器中的parseJSON方法来从串行化的数据中重建我们的Auto对象。借助于这个新的Auto对象，我们就可以调用相应的子对象。这个特征允许我们在服务器和客户端来回发送对象—而不必进行大量的分析工作，然而在以前标准的XML响应情况下我们将却必须这样做。这样以来，我们就可以创建出能够基于AJAX技术来保留自身状态的客户端JavaScript对象<br />
</div>
<img src ="http://www.blogjava.net/Crying/aggbug/200504.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Crying/" target="_blank">Crying</a> 2008-05-14 22:17 <a href="http://www.blogjava.net/Crying/articles/200504.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>除去在用AJAX时缓存</title><link>http://www.blogjava.net/Crying/articles/197474.html</link><dc:creator>Crying</dc:creator><author>Crying</author><pubDate>Wed, 30 Apr 2008 03:30:00 GMT</pubDate><guid>http://www.blogjava.net/Crying/articles/197474.html</guid><wfw:comment>http://www.blogjava.net/Crying/comments/197474.html</wfw:comment><comments>http://www.blogjava.net/Crying/articles/197474.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Crying/comments/commentRss/197474.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Crying/services/trackbacks/197474.html</trackback:ping><description><![CDATA[方法1：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在请求的URL后面&nbsp; 加个时间&nbsp;&nbsp;&nbsp;&nbsp; url=txxx.jsp?time=new Date();<br />
方法2：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在请求的URL后面&nbsp; 加个随机数&nbsp; &nbsp;url=txxx.jsp?number=Math.random();<br />
<br />
&nbsp;&nbsp; js认为链接不一样就会再次取新的内容。 时间戳应该是比随机数更随机的数，保证了每次不一样。<br />
<img src ="http://www.blogjava.net/Crying/aggbug/197474.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Crying/" target="_blank">Crying</a> 2008-04-30 11:30 <a href="http://www.blogjava.net/Crying/articles/197474.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>AJAX实现联动下拉列表</title><link>http://www.blogjava.net/Crying/articles/188410.html</link><dc:creator>Crying</dc:creator><author>Crying</author><pubDate>Tue, 25 Mar 2008 01:26:00 GMT</pubDate><guid>http://www.blogjava.net/Crying/articles/188410.html</guid><wfw:comment>http://www.blogjava.net/Crying/comments/188410.html</wfw:comment><comments>http://www.blogjava.net/Crying/articles/188410.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Crying/comments/commentRss/188410.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Crying/services/trackbacks/188410.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: ajax巨好用,4级级联菜单的解决 （转） http://www.blogjava.net/liaojiyong/archive/2006/07/24/59821.html为解决省、市、区、区域4级级联菜单，在网上搜索了大量的级联菜单解决方案，也请教过不少朋友，要么过于复杂，要么过于占内存，未果。在建议下，悉心读《ajax基础教程》4余遍，方有与ajax相识恨晚之感，唯一的感慨就是好用...&nbsp;&nbsp;<a href='http://www.blogjava.net/Crying/articles/188410.html'>阅读全文</a><img src ="http://www.blogjava.net/Crying/aggbug/188410.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Crying/" target="_blank">Crying</a> 2008-03-25 09:26 <a href="http://www.blogjava.net/Crying/articles/188410.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>简单的注册验证（struts）</title><link>http://www.blogjava.net/Crying/articles/166993.html</link><dc:creator>Crying</dc:creator><author>Crying</author><pubDate>Tue, 11 Dec 2007 09:25:00 GMT</pubDate><guid>http://www.blogjava.net/Crying/articles/166993.html</guid><wfw:comment>http://www.blogjava.net/Crying/comments/166993.html</wfw:comment><comments>http://www.blogjava.net/Crying/articles/166993.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Crying/comments/commentRss/166993.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Crying/services/trackbacks/166993.html</trackback:ping><description><![CDATA[<p>&lt;%@ page language="java" pageEncoding="UTF-8"<br />
&nbsp;contentType="text/html; charset=UTF-8"%&gt;<br />
&lt;%@ taglib uri="http://jakarta.apache.org/struts/tags-bean"<br />
&nbsp;prefix="bean"%&gt;<br />
&lt;%@ taglib uri="http://jakarta.apache.org/struts/tags-html"<br />
&nbsp;prefix="html"%&gt;</p>
<p>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;<br />
&lt;html&gt;<br />
&nbsp;&lt;head&gt;<br />
&nbsp;&nbsp;&lt;title&gt;注册&lt;/title&gt;<br />
&nbsp;&nbsp;&lt;script type="text/javascript" language="javascript" &gt;<br />
&nbsp;&nbsp;&lt;!-- <br />
&nbsp;&nbsp;&nbsp; var XMLHttpReq = false;<br />
&nbsp;<br />
&nbsp;&nbsp;//创建XMLHttpRequest对象&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
function createXMLHttpRequest() {<br />
&nbsp;if (window.XMLHttpRequest) { //Mozilla 浏览器<br />
&nbsp;&nbsp;XMLHttpReq = new XMLHttpRequest();<br />
&nbsp;} else {<br />
&nbsp;&nbsp;if (window.ActiveXObject) { // IE浏览器<br />
&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;catch (e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;catch (e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("XMLHttpRequest创建失败！");<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}<br />
&nbsp;//发送请求函数<br />
function sendRequest(URL) {<br />
&nbsp;createXMLHttpRequest();<br />
&nbsp;XMLHttpReq.open("POST", URL, true);<br />
&nbsp;XMLHttpReq.onreadystatechange = processResponse;//指定响应函数<br />
&nbsp;XMLHttpReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");<br />
&nbsp;XMLHttpReq.send(null);&nbsp; // 发送请求<br />
}<br />
&nbsp;// 处理返回信息函数<br />
function processResponse() {<br />
&nbsp;if (XMLHttpReq.readyState == 4) { // 判断对象状态<br />
&nbsp;&nbsp; // alert("回调函数");<br />
&nbsp;&nbsp;if (XMLHttpReq.status == 200) { // 信息已经成功返回，开始处理信息<br />
&nbsp;&nbsp;&nbsp;var res = XMLHttpReq.responseText;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;chkck.innerHTML = res;&nbsp; <br />
&nbsp;&nbsp;&nbsp;if(res=="工号已存在!")<br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp; document.getElementById("sbs").disabled="true";<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;if(res=="此工号可用!")<br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp; document.getElementById("sbs").disabled="";<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}<br />
&nbsp;&nbsp;&nbsp; // 工号唯一性验证函数(number)<br />
function userNumberCheck() {<br />
&nbsp;var number = document.getElementById("USER_NUMBER").value;<br />
&nbsp;if(number.length&gt;0)<br />
&nbsp;<br />
&nbsp;{<br />
&nbsp;//alert(number);<br />
&nbsp;chkck.style.display = "";<br />
&nbsp;//alert("发送请求");<br />
&nbsp;sendRequest("/vacation_manage/checkUserNumber.do?number=" + number);<br />
&nbsp;<br />
&nbsp;}<br />
}<br />
&nbsp; <br />
//用户注册验证函数<br />
function regCheck() {</p>
<p>&nbsp;var userNumber =&nbsp;&nbsp; document.getElementById("USER_NUMBER").value;<br />
&nbsp;var username =&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById("USERNAME").value;<br />
&nbsp;var password =&nbsp;&nbsp;&nbsp; document.getElementById("PASSWORD").value;<br />
&nbsp;var rep_password = document.getElementById("REP_PASS").value;<br />
&nbsp;var email =&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById("ee").value;<br />
&nbsp;var yanzhengma =&nbsp;&nbsp; document.getElementById("yzm").value;<br />
&nbsp;if (!userNumber || userNumber.replace(/\s/g, "") == "") {<br />
&nbsp;&nbsp;alert("用户的ID不能为空！");<br />
&nbsp;&nbsp;document.getElementById("USER_NUMBER").focus();<br />
&nbsp;&nbsp;return false;<br />
&nbsp;}<br />
&nbsp;if(userNumber.length&gt;5){<br />
&nbsp;&nbsp;&nbsp;&nbsp; alert("ID不得超过5个字符！");<br />
&nbsp;&nbsp;document.getElementById("USER_NUMBER").focus();<br />
&nbsp;&nbsp;return false;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;if (!username || username.replace(/\s/g, "") == "") {<br />
&nbsp;&nbsp;alert("用户名不能为空！");<br />
&nbsp;&nbsp;return false;<br />
&nbsp;}<br />
&nbsp;if(username.length&gt;=8){<br />
&nbsp;&nbsp;&nbsp;&nbsp; alert("用户名不得超过4个字！");<br />
&nbsp;&nbsp;document.getElementById("USERNAME").focus();<br />
&nbsp;&nbsp;return false;<br />
&nbsp;}<br />
&nbsp;if (!password || password.replace(/\s/g, "") == "") {<br />
&nbsp;&nbsp;alert("密码不能为空！");<br />
&nbsp;&nbsp;document.getElementById("PASSWORD").focus();<br />
&nbsp;&nbsp;return false;<br />
&nbsp;}<br />
&nbsp;if(password.length&lt;3){<br />
&nbsp;&nbsp;&nbsp;&nbsp; alert("密码不得少于3个字符！");<br />
&nbsp;&nbsp;document.getElementById("PASSWORD").focus();<br />
&nbsp;&nbsp;document.getElementById("PASSWORD").value="";<br />
&nbsp;&nbsp;document.getElementById("REP_PASS").value="";<br />
&nbsp;&nbsp;return false;<br />
&nbsp;}<br />
&nbsp;if (!rep_password || rep_password.replace(/\s/g, "") == "") {<br />
&nbsp;&nbsp;alert("二次密码不能为空！");<br />
&nbsp;&nbsp;document.getElementById("REP_PASS").focus();<br />
&nbsp;&nbsp;return false;<br />
&nbsp;}<br />
&nbsp;if (password != rep_password) {<br />
&nbsp;&nbsp;alert("两次输入的密码不同！");<br />
&nbsp;&nbsp;document.getElementById("PASSWORD").value="";<br />
&nbsp;&nbsp;document.getElementById("REP_PASS").value="";<br />
&nbsp;&nbsp;document.getElementById("PASSWORD").focus();<br />
&nbsp;&nbsp;return false;<br />
&nbsp;}<br />
&nbsp; if(!email||email.replace(/\s/g, "") == ""){<br />
&nbsp;&nbsp;&nbsp; alert("Email不能为空！");<br />
&nbsp;&nbsp;&nbsp; document.getElementById("ee").focus();<br />
&nbsp;&nbsp;&nbsp; return false;<br />
&nbsp;}<br />
&nbsp; if (!(email.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)){<br />
&nbsp;&nbsp;alert("请输入合法的Email！");<br />
&nbsp;&nbsp;document.getElementById("ee").focus();<br />
&nbsp;&nbsp;return false;<br />
&nbsp;}<br />
&nbsp;if (!yanzhengma || yanzhengma.replace(/\s/g, "") == "") {<br />
&nbsp;&nbsp;alert("验证码不能为空！");<br />
&nbsp;&nbsp;document.getElementById("yzm").focus();<br />
&nbsp;&nbsp;return false;<br />
&nbsp;}<br />
&nbsp;<br />
}<br />
function fush()<br />
{<br />
&nbsp;document.getElementById("yanzm").style.display="none"; <br />
}<br />
//--&gt;</p>
<p><br />
&lt;/script&gt;<br />
&nbsp;&nbsp;&lt;link rel="stylesheet" href="/vacation_manage/css/common.css"&gt;<br />
&nbsp;&lt;/head&gt;</p>
<p>&nbsp;&lt;body&gt;<br />
&nbsp;&nbsp;&lt;html:form action="/register" method="post" &gt;</p>
<p>&nbsp;&nbsp;&nbsp;&lt;table align="center"&nbsp; &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td align="left" style="color: blue"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;填写注册信息<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr align="center"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;table &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td align="right"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;工号 :<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td align="right"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用户名 :<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td align="right"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;密码 :<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td align="right"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;重输入密码 :<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td align="right"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Email :<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td align="right"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;验证码:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/table&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;table&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td align="left"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:text property="userNumber" value="" size="15" onfocus="fush()"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;styleId="USER_NUMBER" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;span&gt;不超过5个字符&lt;/span&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;span id="chkck" style="display: none ;color: blue"&gt;检测中...请稍后&lt;/sapn&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td align="left"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:text property="username" value="" size="15" styleId="USERNAME"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;onfocus="userNumberCheck()" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;span&gt;不超过5个汉字&lt;/span&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td align="left"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:password property="password"&nbsp; size="17" value="" styleId="PASSWORD" onfocus="clear()"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;span&gt;不少于3个字符&lt;/span&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td align="left"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:password property="rep_password"&nbsp; size="17" value=""&nbsp; styleId="REP_PASS"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td align="left"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:text property="email" value="" size="15" styleId="ee" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td align="left"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:text property="yanzhengma" value="" size="15" styleId="yzm" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;img src="/vacation_manage/page/yanzhengma.jsp" id="CheckCodeimg" title="看不清请点击右边！"/&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;a href="#" onclick="document.getElementById('CheckCodeimg').src='/vacation_manage/page/yanzhengma.jsp';"&gt;看不清？&lt;/a&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div id="yanzm" style="color: red" &gt;&lt;html:errors property="yanzhengma"/&gt;&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/table&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr align="center"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:submit value="创建用户" onclick="return regCheck()" disabled="false" styleId="sbs"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;html:reset value="取消" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&lt;/table&gt;<br />
&nbsp;&nbsp;&lt;/html:form&gt;<br />
&nbsp;&lt;/body&gt;<br />
&lt;/html&gt;</p>
<p>&nbsp;/******************************************************<br />
</p>
<p>package com.action;</p>
<p>import java.io.IOException;<br />
import java.io.PrintWriter;<br />
import javax.servlet.http.HttpServletRequest;<br />
import javax.servlet.http.HttpServletResponse;<br />
import org.apache.struts.action.Action;<br />
import org.apache.struts.action.ActionForm;<br />
import org.apache.struts.action.ActionForward;<br />
import org.apache.struts.action.ActionMapping;<br />
import com.dao.DbUserDAO;<br />
import com.po.DbUser;</p>
<p>/**<br />
&nbsp;* ajax验证用户的ID是不是存在<br />
&nbsp;* <br />
&nbsp;* @version1.0 2007/10/31<br />
&nbsp;* @author Administrator<br />
&nbsp;* <br />
&nbsp;*/<br />
public class CheckUserNumberActionAction extends Action {</p>
<p>&nbsp;public ActionForward execute(ActionMapping mapping, ActionForm form,<br />
&nbsp;&nbsp;&nbsp;HttpServletRequest request, HttpServletResponse response)<br />
&nbsp;&nbsp;&nbsp;throws IOException {</p>
<p>&nbsp;&nbsp;request.setCharacterEncoding("UTF-8");<br />
&nbsp;&nbsp;response.setContentType("text/html;charset=UTF-8");<br />
&nbsp;&nbsp;PrintWriter out = response.getWriter();<br />
&nbsp;&nbsp;DbUserDAO dbUserDAO = new DbUserDAO();<br />
&nbsp;&nbsp;String number = request.getParameter("number");<br />
&nbsp;&nbsp;//System.out.println("the id is "+ number);<br />
&nbsp;&nbsp;DbUser user = dbUserDAO.validateUserNumber(number);<br />
&nbsp;&nbsp;if (user != null) {<br />
&nbsp;&nbsp;&nbsp;out.print("工号已存在!");//<br />
&nbsp;&nbsp;&nbsp;out.close();<br />
&nbsp;&nbsp;&nbsp;return null;<br />
&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;out.print("此工号可用!");<br />
&nbsp;&nbsp;&nbsp;out.close();<br />
&nbsp;&nbsp;&nbsp;return null;<br />
&nbsp;&nbsp;}</p>
<p>&nbsp;}<br />
}</p>
 <img src ="http://www.blogjava.net/Crying/aggbug/166993.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Crying/" target="_blank">Crying</a> 2007-12-11 17:25 <a href="http://www.blogjava.net/Crying/articles/166993.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>AJAX动态搜索（我的第一个AJXA程序）</title><link>http://www.blogjava.net/Crying/articles/143760.html</link><dc:creator>Crying</dc:creator><author>Crying</author><pubDate>Sun, 09 Sep 2007 05:21:00 GMT</pubDate><guid>http://www.blogjava.net/Crying/articles/143760.html</guid><wfw:comment>http://www.blogjava.net/Crying/comments/143760.html</wfw:comment><comments>http://www.blogjava.net/Crying/articles/143760.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Crying/comments/commentRss/143760.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Crying/services/trackbacks/143760.html</trackback:ping><description><![CDATA[<p>这是SSH的至于DAO和ApplicationContext.xml我就不贴出来了<br />
<br />
&lt;%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%&gt;</p>
<p>&lt;%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%&gt;<br />
&lt;%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%&gt;<br />
&lt;%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%&gt;<br />
&lt;%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%&gt;</p>
<p><br />
&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;<br />
&lt;html:html lang="true"&gt;<br />
&lt;head&gt;<br />
&nbsp;&lt;html:base /&gt;<br />
&nbsp;&lt;title&gt;显示文章&lt;/title&gt;<br />
&lt;link rel="stylesheet"&nbsp; href="my.css"&gt;<br />
&nbsp;&lt;script type="text/javascript"&gt;<br />
&nbsp;&lt;!--<br />
&nbsp;///////////////////////AJAX的动态搜索///////////////&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;var xmlhttp=false;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var dataDiv;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var dataTableBody;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function createXMLHttpRequest()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(window.XMLHttpRequest) { //Mozilla 浏览器<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;xmlhttp = new XMLHttpRequest();<br />
&nbsp;&nbsp;}<br />
&nbsp;else if (window.ActiveXObject){ // IE浏览器<br />
&nbsp;&nbsp;&nbsp;try <br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");<br />
&nbsp;&nbsp;&nbsp;} catch (e) <br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");<br />
&nbsp;&nbsp;&nbsp;&nbsp;} catch (e) {}<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;} <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function SendXMLHttpRequest(url)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { dataDiv=document.getElementById("popup");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataTableBody = document.getElementById("dataBody");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;createXMLHttpRequest();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlhttp.open("POST",url,true);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlhttp.onreadystatechange=callbackfunction;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlhttp.send(url);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function callbackfunction()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(xmlhttp.readystate==4)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(xmlhttp.status==200)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var data=xmlhttp.responseXML;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var newItems=data.getElementsByTagName("content");//***********<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var idItems=data.getElementsByTagName("id");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clearData(); //清空原来的<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(var i=0;i&lt;newItems.length;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var row, item, idItem,txtNode,txtNode2 ;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; item=newItems[i];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; idItem=idItems[i];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; txtNode=item.text;//////***************<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; txtNode2=idItem.text;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; row=createRow(txtNode,txtNode2);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataTableBody.appendChild(row);&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function text_change()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var url="ajax_find_article.do?name="+window.document.getElementById("Text1").value;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // alert(url);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SendXMLHttpRequest(url);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //生成表格内容行<br />
&nbsp;&nbsp; &nbsp;function createRow(data,data2) {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var row, cell,cell2, txtNode,txtNode2;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; row = document.createElement("tr");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cell = document.createElement("td");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cell2 = document.createElement("td");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var a=document.createElement("a")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cell.setAttribute("bgcolor", "#FFFAFA");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cell.setAttribute("border", "1"); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cell2.setAttribute("bgcolor", "#FFFAFA");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cell2.setAttribute("border", "1");&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.setAttribute("href", "http://localhost:8080/ssh_article/oneArticleList.do?id="+data2); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; txtNode = document.createTextNode(data);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; txtNode2 = document.createTextNode("查看详情");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cell.appendChild(txtNode);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.appendChild(txtNode2);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; row.appendChild(cell);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cell2.appendChild(a);&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; row.appendChild(cell2);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return row;&nbsp; <br />
&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 清除提示框******<br />
&nbsp;&nbsp; &nbsp;function clearData() {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var ind = dataTableBody.childNodes.length;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (var i = ind - 1; i &gt;= 0 ; i--) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataTableBody.removeChild(dataTableBody.childNodes[i]);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataDiv.style.border = "none";<br />
&nbsp;&nbsp; &nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />
&nbsp;//--&gt;<br />
&nbsp;&lt;/script&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&nbsp;关键字搜索：&lt;input type="text" id="Text1" size="10"&nbsp; onkeyup="return text_change()" /&gt;<br />
&nbsp;&nbsp;&lt;hr style="color:blue"&gt;<br />
&nbsp;&nbsp;&lt;div&nbsp;style="position:absolute; left: 0px; width: 200px; top: 50px; height: 233px; " id="popup"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;table border="0" cellspacing="2" cellpadding="2"&nbsp; bgcolor="#E0F0F8"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;tbody id="dataBody"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tbody&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/table&gt;<br />
&nbsp;&nbsp;&lt;/div&gt;<br />
&nbsp;&nbsp;&lt;br /&gt;<br />
&lt;/body&gt;<br />
&lt;/html:html&gt;<br />
*********************************************<br />
SERVLET<br />
<br />
package com.wsq.struts.action;</p>
<p>import java.io.IOException;<br />
import java.io.PrintWriter;<br />
import java.util.Iterator;<br />
import java.util.List;import javax.servlet.http.HttpServletRequest;<br />
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;<br />
import org.apache.struts.action.ActionForm;<br />
import org.apache.struts.action.ActionForward;<br />
import org.apache.struts.action.ActionMapping;<br />
import com.wsq.dao.ArticleDAO;<br />
import com.wsq.vo.Article;</p>
<p>public class Ajax_find_articleAction extends Action {<br />
&nbsp;&nbsp;&nbsp;&nbsp; private ArticleDAO articleDAO;<br />
&nbsp;&nbsp;&nbsp;&nbsp; public ArticleDAO getArticleDAO() {<br />
&nbsp;&nbsp;&nbsp;return articleDAO;<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;public void setArticleDAO(ArticleDAO articleDAO) {<br />
&nbsp;&nbsp;&nbsp;this.articleDAO = articleDAO;<br />
&nbsp;&nbsp;}<br />
&nbsp;public ActionForward execute(ActionMapping mapping, ActionForm form,<br />
&nbsp;&nbsp;&nbsp;HttpServletRequest request, HttpServletResponse response)&nbsp; throws IOException{<br />
&nbsp;&nbsp;request.setCharacterEncoding("UTF-8");<br />
&nbsp;&nbsp;String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312");////编码转换GB2312<br />
&nbsp;&nbsp;System.out.println(name+"&nbsp;&nbsp;关键字！");</p>
<p dir="ltr">&nbsp;&nbsp;if (name.length()&lt;1 ) {<br />
&nbsp;&nbsp;&nbsp;name ="0";&nbsp;&nbsp;////搜索为空（也就是没数据返回）<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;System.out.println("+++++++++++++++++++++++++++++");<br />
&nbsp;&nbsp;List list = articleDAO.findByMyName(name);<br />
&nbsp;&nbsp;System.out.println("-------------------------------");<br />
&nbsp;&nbsp;response.setContentType("text/xml; charset=UTF-8");<br />
&nbsp;&nbsp;response.setHeader("Cache-Control", "no-cache");<br />
&nbsp;&nbsp;PrintWriter out = response.getWriter();<br />
&nbsp;&nbsp;out.println("&lt;response&gt;");<br />
&nbsp;&nbsp;Iterator i = list.iterator();<br />
&nbsp;&nbsp;while (i.hasNext()) {<br />
&nbsp;&nbsp;&nbsp;Article a= (Article) i.next();<br />
&nbsp;&nbsp;&nbsp;out.println("&lt;content&gt;" + a.getTitle() + "&lt;/content&gt;");<br />
&nbsp;&nbsp;&nbsp;out.println("&lt;id&gt;" + a.getId() + "&lt;/id&gt;");<br />
<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;out.println("&lt;/response&gt;");<br />
&nbsp;&nbsp;out.close();<br />
&nbsp;&nbsp;return null;</p>
<p>&nbsp;}<br />
&nbsp;<br />
}</p>
<img src ="http://www.blogjava.net/Crying/aggbug/143760.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Crying/" target="_blank">Crying</a> 2007-09-09 13:21 <a href="http://www.blogjava.net/Crying/articles/143760.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>