<script type="text/javascript"src="javascript/model/Ajax.js"></script>
<script type="text/javascript" src="javascript/model/HTTP.js"></script>
<script type="text/javascript" src="javascript/model/AjaxUpdater.js"></script>
<script type="text/javascript">
document.load = AjaxUpdater.Update(’GET’, URL, callback);
</script>
var Auto = new Object();
Auto.Car = new Object();
Auto.Car.color = "#fff";
Auto.Car.setColor = function(_color)
{
Auto.Car.color = _color;
}
Auto.Car.setColor("#333");
Auto.Car.Wheel = new Object();
Auto.Car.Wheel.color = "#000";
<script type="text/javascript" src="javascript/utils/jsonparser.js"></script>
<script type="text/javascript" src="javascript/Auto.js"></script>
<script type="text/javascript" src="javascript/Car.js"></script>
<script type="text/javascript" src="javascript/Wheel.js"></script>
<script type="text/javascript" src="javascript/utils/jsonparser.js"></script>
<script type="text/javascript" src="javascript/model/Ajax.js"></script>
<script type="text/javascript" src="javascript/model/HTTP.js"></script>
<script type="text/javascript" src="javascript/model/AjaxUpdater.js"></script>
以下是引用片段:
<div id="loading"></div>
<div id="body"></div>
<body onload="document.getElementById(’body’).innerHTML = ’<b>Local objects serialized as JSON</b>
Auto Object: ’+ Auto.toJSONString();">
{"Car":{"color":"#333","Wheel":{"color":"#000"}}}
<a href="javascript:AjaxUpdater.Update(’GET’, ’json/data.js’, displayResponse);">Get remote JSON</a>
<script type="text/javascript">
function displayResponse()
{
if(Ajax.checkReadyState(’loading’) == "OK")
{
var Auto = Ajax.request.responseText.parseJSON();
document.getElementById("body").innerHTML += "
<b>Remote JSON unserialized</b>";
document.getElementById("body").innerHTML += "
Car color: "+Auto.Car.color;
document.getElementById("body").innerHTML += "
Wheel color: "+Auto.Car.Wheel.color;
}
}
</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>注冊</title>
<script type="text/javascript" language="javascript" >
<!--
var XMLHttpReq = false;
//創建XMLHttpRequest對象
function createXMLHttpRequest() {
if (window.XMLHttpRequest) { //Mozilla 瀏覽器
XMLHttpReq = new XMLHttpRequest();
} else {
if (window.ActiveXObject) { // IE瀏覽器
try {
XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
alert("XMLHttpRequest創建失敗!");
}
}
}
}
}
//發送請求函數
function sendRequest(URL) {
createXMLHttpRequest();
XMLHttpReq.open("POST", URL, true);
XMLHttpReq.onreadystatechange = processResponse;//指定響應函數
XMLHttpReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
XMLHttpReq.send(null); // 發送請求
}
// 處理返回信息函數
function processResponse() {
if (XMLHttpReq.readyState == 4) { // 判斷對象狀態
// alert("回調函數");
if (XMLHttpReq.status == 200) { // 信息已經成功返回,開始處理信息
var res = XMLHttpReq.responseText;
chkck.innerHTML = res;
if(res=="工號已存在!")
{
document.getElementById("sbs").disabled="true";
}
if(res=="此工號可用!")
{
document.getElementById("sbs").disabled="";
}
}
}
}
// 工號唯一性驗證函數(number)
function userNumberCheck() {
var number = document.getElementById("USER_NUMBER").value;
if(number.length>0)
{
//alert(number);
chkck.style.display = "";
//alert("發送請求");
sendRequest("/vacation_manage/checkUserNumber.do?number=" + number);
}
}
//用戶注冊驗證函數
function regCheck() {
var userNumber = document.getElementById("USER_NUMBER").value;
var username = document.getElementById("USERNAME").value;
var password = document.getElementById("PASSWORD").value;
var rep_password = document.getElementById("REP_PASS").value;
var email = document.getElementById("ee").value;
var yanzhengma = document.getElementById("yzm").value;
if (!userNumber || userNumber.replace(/\s/g, "") == "") {
alert("用戶的ID不能為空!");
document.getElementById("USER_NUMBER").focus();
return false;
}
if(userNumber.length>5){
alert("ID不得超過5個字符!");
document.getElementById("USER_NUMBER").focus();
return false;
}
if (!username || username.replace(/\s/g, "") == "") {
alert("用戶名不能為空!");
return false;
}
if(username.length>=8){
alert("用戶名不得超過4個字!");
document.getElementById("USERNAME").focus();
return false;
}
if (!password || password.replace(/\s/g, "") == "") {
alert("密碼不能為空!");
document.getElementById("PASSWORD").focus();
return false;
}
if(password.length<3){
alert("密碼不得少于3個字符!");
document.getElementById("PASSWORD").focus();
document.getElementById("PASSWORD").value="";
document.getElementById("REP_PASS").value="";
return false;
}
if (!rep_password || rep_password.replace(/\s/g, "") == "") {
alert("二次密碼不能為空!");
document.getElementById("REP_PASS").focus();
return false;
}
if (password != rep_password) {
alert("兩次輸入的密碼不同!");
document.getElementById("PASSWORD").value="";
document.getElementById("REP_PASS").value="";
document.getElementById("PASSWORD").focus();
return false;
}
if(!email||email.replace(/\s/g, "") == ""){
alert("Email不能為空!");
document.getElementById("ee").focus();
return false;
}
if (!(email.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)){
alert("請輸入合法的Email!");
document.getElementById("ee").focus();
return false;
}
if (!yanzhengma || yanzhengma.replace(/\s/g, "") == "") {
alert("驗證碼不能為空!");
document.getElementById("yzm").focus();
return false;
}
}
function fush()
{
document.getElementById("yanzm").style.display="none";
}
//-->
</script>
<link rel="stylesheet" href="/vacation_manage/css/common.css">
</head>
<body>
<html:form action="/register" method="post" >
<table align="center" >
<tr>
<td align="left" style="color: blue">
填寫注冊信息
</td>
</tr>
<tr align="center">
<td>
<table >
<tr>
<td align="right">
工號 :
</td>
</tr>
<tr>
<td align="right">
用戶名 :
</td>
</tr>
<tr>
<td align="right">
密碼 :
</td>
</tr>
<tr>
<td align="right">
重輸入密碼 :
</td>
</tr>
<tr>
<td align="right">
Email :
</td>
</tr>
<tr>
<td align="right">
驗證碼:
</td>
</tr>
</table>
</td>
<td>
<table>
<tr>
<td align="left">
<html:text property="userNumber" value="" size="15" onfocus="fush()"
styleId="USER_NUMBER" />
<span>不超過5個字符</span>
<span id="chkck" style="display: none ;color: blue">檢測中...請稍后</sapn>
</td>
</tr>
<tr>
<td align="left">
<html:text property="username" value="" size="15" styleId="USERNAME"
onfocus="userNumberCheck()" />
<span>不超過5個漢字</span>
</td>
</tr>
<tr>
<td align="left">
<html:password property="password" size="17" value="" styleId="PASSWORD" onfocus="clear()"/>
<span>不少于3個字符</span>
</td>
</tr>
<tr>
<td align="left">
<html:password property="rep_password" size="17" value="" styleId="REP_PASS"/>
</td>
</tr>
<tr>
<td align="left">
<html:text property="email" value="" size="15" styleId="ee" />
</td>
</tr>
<tr>
<td align="left">
<html:text property="yanzhengma" value="" size="15" styleId="yzm" />
<img src="/vacation_manage/page/yanzhengma.jsp" id="CheckCodeimg" title="看不清請點擊右邊!"/></td>
<td><a href="#" onclick="document.getElementById('CheckCodeimg').src='/vacation_manage/page/yanzhengma.jsp';">看不清?</a></td>
<div id="yanzm" style="color: red" ><html:errors property="yanzhengma"/></div>
</tr>
</table>
</td>
</tr>
<tr align="center">
<td>
<html:submit value="創建用戶" onclick="return regCheck()" disabled="false" styleId="sbs"/>
</td>
<td>
<html:reset value="取消" />
</td>
</tr>
</table>
</html:form>
</body>
</html>
/******************************************************
package com.action;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.dao.DbUserDAO;
import com.po.DbUser;
/**
* ajax驗證用戶的ID是不是存在
*
* @version1.0 2007/10/31
* @author Administrator
*
*/
public class CheckUserNumberActionAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
DbUserDAO dbUserDAO = new DbUserDAO();
String number = request.getParameter("number");
//System.out.println("the id is "+ number);
DbUser user = dbUserDAO.validateUserNumber(number);
if (user != null) {
out.print("工號已存在!");//
out.close();
return null;
} else {
out.print("此工號可用!");
out.close();
return null;
}
}
}
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html lang="true">
<head>
<html:base />
<title>顯示文章</title>
<link rel="stylesheet" href="my.css">
<script type="text/javascript">
<!--
///////////////////////AJAX的動態搜索///////////////
var xmlhttp=false;
var dataDiv;
var dataTableBody;
function createXMLHttpRequest()
{
if(window.XMLHttpRequest) { //Mozilla 瀏覽器
xmlhttp = new XMLHttpRequest();
}
else if (window.ActiveXObject){ // IE瀏覽器
try
{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e)
{
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
}
function SendXMLHttpRequest(url)
{ dataDiv=document.getElementById("popup");
dataTableBody = document.getElementById("dataBody");
createXMLHttpRequest();
xmlhttp.open("POST",url,true);
xmlhttp.onreadystatechange=callbackfunction;
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.send(url);
}
function callbackfunction()
{
if(xmlhttp.readystate==4)
{
if(xmlhttp.status==200)
{
var data=xmlhttp.responseXML;
var newItems=data.getElementsByTagName("content");//***********
var idItems=data.getElementsByTagName("id");
clearData(); //清空原來的
for(var i=0;i<newItems.length;i++)
{
var row, item, idItem,txtNode,txtNode2 ;
item=newItems[i];
idItem=idItems[i];
txtNode=item.text;//////***************
txtNode2=idItem.text;
row=createRow(txtNode,txtNode2);
dataTableBody.appendChild(row);
}
}
}
}
function text_change()
{
var url="ajax_find_article.do?name="+window.document.getElementById("Text1").value;
// alert(url);
SendXMLHttpRequest(url);
}
//生成表格內容行
function createRow(data,data2) {
var row, cell,cell2, txtNode,txtNode2;
row = document.createElement("tr");
cell = document.createElement("td");
cell2 = document.createElement("td");
var a=document.createElement("a")
cell.setAttribute("bgcolor", "#FFFAFA");
cell.setAttribute("border", "1");
cell2.setAttribute("bgcolor", "#FFFAFA");
cell2.setAttribute("border", "1");
a.setAttribute("href", "http://localhost:8080/ssh_article/oneArticleList.do?id="+data2);
txtNode = document.createTextNode(data);
txtNode2 = document.createTextNode("查看詳情");
cell.appendChild(txtNode);
a.appendChild(txtNode2);
row.appendChild(cell);
cell2.appendChild(a);
row.appendChild(cell2);
return row;
}
// 清除提示框******
function clearData() {
var ind = dataTableBody.childNodes.length;
for (var i = ind - 1; i >= 0 ; i--) {
dataTableBody.removeChild(dataTableBody.childNodes[i]);
}
dataDiv.style.border = "none";
}
//-->
</script>
</head>
<body>
關鍵字搜索:<input type="text" id="Text1" size="10" onkeyup="return text_change()" />
<hr style="color:blue">
<div style="position:absolute; left: 0px; width: 200px; top: 50px; height: 233px; " id="popup">
<table border="0" cellspacing="2" cellpadding="2" bgcolor="#E0F0F8">
<tbody id="dataBody">
</tbody>
</table>
</div>
<br />
</body>
</html:html>
*********************************************
SERVLET
package com.wsq.struts.action;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.wsq.dao.ArticleDAO;
import com.wsq.vo.Article;
public class Ajax_find_articleAction extends Action {
private ArticleDAO articleDAO;
public ArticleDAO getArticleDAO() {
return articleDAO;
}
public void setArticleDAO(ArticleDAO articleDAO) {
this.articleDAO = articleDAO;
}
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws IOException{
request.setCharacterEncoding("UTF-8");
String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312");////編碼轉換GB2312
System.out.println(name+" 關鍵字!");
if (name.length()<1 ) {
name ="0"; ////搜索為空(也就是沒數據返回)
}
System.out.println("+++++++++++++++++++++++++++++");
List list = articleDAO.findByMyName(name);
System.out.println("-------------------------------");
response.setContentType("text/xml; charset=UTF-8");
response.setHeader("Cache-Control", "no-cache");
PrintWriter out = response.getWriter();
out.println("<response>");
Iterator i = list.iterator();
while (i.hasNext()) {
Article a= (Article) i.next();
out.println("<content>" + a.getTitle() + "</content>");
out.println("<id>" + a.getId() + "</id>");
}
out.println("</response>");
out.close();
return null;
}
}