Posted on 2009-05-14 03:15
H2O 阅读(786)
评论(1) 编辑 收藏 所属分类:
ajax
js文件(yizhi_ajax.js)
1
/**//*** 仅作为学习交流之用
2
* 请您勿用于商业用途
3
*/
4
var yizhi_ajax =
{
5
xhr:false,
6
url:"",
7
method:"post",
8
toString:Object.prototype.toString,
9
isArray:function( obj )
{
10
return this.toString.call(obj) === "[object Array]";
11
},
12
isFunction:function( obj )
{
13
return this.toString.call(obj) === "[object Function]";
14
},
15
each:function( object, callback, args )
{
16
var name, i = 0, length = object.length;
17
if ( args )
{
18
if ( length === undefined )
{
19
for ( name in object )
20
if ( callback.apply( object[ name ], args ) === false )
21
break;
22
} else
23
for ( ; i < length; )
24
if ( callback.apply( object[ i++ ], args ) === false )
25
break;
26
} else
{
27
if ( length === undefined )
{
28
for ( name in object )
29
if ( callback.call( object[ name ], name, object[ name ] ) === false )
30
break;
31
} else
32
for ( var value = object[0];
33
i < length && callback.call( value, i, value ) !== false; value = object[++i] )
{}
34
}
35
36
return object;
37
},
38
param:function(a)
{
39
var s = [ ];
40
function add( key, value )
{
41
s[ s.length ] = encodeURIComponent(key) + '=' + encodeURIComponent(value);
42
};
43
if ( this.isArray(a))
44
this.each( a, function()
{
45
add( this.name, this.value );
46
});
47
48
else
49
for ( var j in a )
50
if ( this.isArray(a[j]) )
51
this.each( a[j], function()
{
52
add( j, this );
53
});
54
else
55
add( j, this.isFunction(a[j]) ? a[j]() : a[j] );
56
return s.join("&").replace(/%20/g, "+");
57
},
58
showMsg:true,
59
getXhr:function()
{
60
if(this.xhr==false)
{
61
try
{
62
this.xhr = new ActiveXObject("Microsoft.XMLHTTP");
63
}catch(e)
{
64
try
{
65
this.xhr = new ActiveXObject("Msxml2.XMLHTTP");
66
}catch(e)
{
67
alert("xhr对象创建失败!");
68
}
69
}
70
}
71
return this.xhr;
72
},
73
send:function(requestUrl,parameters,callBack)
{
74
if(this.xhr==false)
{
75
this.getXhr();
76
requestUrl+=("?"+new Date().getTime()); //利用随即生成的时间解决缓存问题
77
this.xhr.open(this.method,requestUrl,true);
78
this.xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded;charset=UTF-8;');
79
this.xhr.send(this.param(parameters));
80
this.xhr.onreadystatechange=function()
{
81
if(yizhi_ajax.xhr.readyState ==4)
{
82
if(this.showMsg)
{
83
alert("发送完毕");
84
}
85
if(yizhi_ajax.xhr.status==200)
{
86
if(this.showMsg)
{
87
alert("请求成功并完成!");
88
}
89
callBack(yizhi_ajax.xhr);
90
yizhi_ajax.xhr=false;
91
}else
{
92
if(this.showMsg)
{
93
alert("服务端返回状态" + yizhi_ajax.xhr.statusText);
94
}
95
}
96
}
97
}
98
}
99
}
100
101
}
index.jsp
1
2
3
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
4
<html>
5
<head>
6
7
<title>无聊就要涮锅子</title>
8
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
9
<meta http-equiv="pragma" content="no-cache">
10
<meta http-equiv="cache-control" content="no-cache">
11
<meta http-equiv="expires" content="0">
12
</head>
13
<script type="text/javascript" src="js/yizhi_ajax.js"></script>
14
<script type="text/javascript">
15
var check=function()
{
16
var param=
{
17
name:document.getElementById("uname").value
18
}
19
yizhi_ajax.send("http://127.0.0.1:8080/test/servlet/test",param,function(xhr)
20
{
21
try
{
22
var response =eval("(" + xhr.responseText + ")");
23
if(response.is=="yes")
{
24
alert("果然你是死锅子,唰,刷刷刷!!!!!!!!!!!!!唰锅子就是爽 O(∩_∩)O哈哈~");
25
}else
{
26
alert("你真TMD太令我失望了。。。╮(╯▽╰)╭哎。。。");
27
}
28
}catch(e)
{
29
}
30
}
31
);
32
33
}
34
</script>
35
<body>
36
请输入您的姓名:<input id="uname">
37
<input type="button" value="你是死锅子吗?" onclick="check();">
38
39
</body>
40
</html>
41
servlet文件(test.java URL映射为:/servlet/test 本例子用了json2.3,如需相关jar包请自行搜索过着去官网下载)
package com.yz.test;

import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLDecoder;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONObject;


public class test extends HttpServlet
{


public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException
{

doPost(request,response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException
{
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();

try
{
Map map = new HashMap();

if("郭照友".equals(URLDecoder.decode(request.getParameter("name"))))
{
map.put("is","yes");

}else
{
map.put("is","no");
}
JSONObject json = JSONObject.fromObject(map);
out.println(json);

} catch (Exception e)
{
}
out.flush();
out.close();
}
}