好久没写东西了。最近无聊,发点上来!
用ajax首先先写一个调用的function
一、ajaxFuntion.js
//
定义XMLHttpRequest对象实例
var http_request
=
false
;
//
定义可复用的http请求发送函数
function send_request(method,url,content,responseType,callback)
{
//
初始化、指定处理函数、发送请求的函数
http_request
=
false
;
//
开始初始化XMLHttpRequest对象
if
(window.XMLHttpRequest)
{
//
Mozilla 浏览器
http_request
=
new
XMLHttpRequest();
if
(http_request.overrideMimeType)
{
//
设置MiME类别
http_request.overrideMimeType(
"
text/xml
"
);
}
}
else
if
(window.ActiveXObject)
{
//
IE浏览器
try
{
http_request
=
new
ActiveXObject(
"
Msxml2.XMLHTTP
"
);
}
catch
(e)
{
try
{
http_request
=
new
ActiveXObject(
"
Microsoft.XMLHTTP
"
);
}
catch
(e)
{}
}
}
if
(
!
http_request)
{
//
异常,创建对象实例失败
window.alert(
"
不能创建XMLHttpRequest对象实例.
"
);
return
false
;
}
if
(responseType.toLowerCase()
==
"
text
"
)
{
//
http_request.onreadystatechange = processTextResponse;
http_request.onreadystatechange
=
callback;
}
else
if
(responseType.toLowerCase()
==
"
xml
"
)
{
//
http_request.onreadystatechange = processXMLResponse;
http_request.onreadystatechange
=
callback;
}
else
{
window.alert(
"
响应类别参数错误。
"
);
return
false
;
}
//
确定发送请求的方式和URL以及是否异步执行下段代码
if
(method.toLowerCase()
==
"
get
"
)
{
http_request.open(method, url,
true
);
}
else
if
(method.toLowerCase()
==
"
post
"
)
{
http_request.open(method, url,
true
);
http_request.setRequestHeader(
"
Content-Type
"
,
"
application/x-www-form-urlencoded
"
);
}
else
{
window.alert(
"
http请求类别参数错误。
"
);
return
false
;
}
http_request.send(content);
}
//
处理返回文本格式信息的函数
function processTextResponse()
{
if
(http_request.readyState
==
4
)
{
//
判断对象状态
if
(http_request.status
==
200
)
{
//
信息已经成功返回,开始处理信息
//
alert(http_request.responseText);
alert(
"
Text文档响应。
"
);
}
else
{
//
页面不正常
alert(
"
您所请求的页面有异常。
"
);
}
}
}
//
处理返回的XML格式文档的函数
function processXMLResponse()
{
if
(http_request.readyState
==
4
)
{
//
判断对象状态
if
(http_request.status
==
200
)
{
//
信息已经成功返回,开始处理信息
//
alert(http_request.responseXML);
alert(
"
XML文档响应。
"
);
}
else
{
//
页面不正常
alert(
"
您所请求的页面有异常。
"
);
}
}
2、调用页面:
<
script type
=
"
text/javascript
"
>
function getAjax(obj)
{
send_request(
"
GET
"
,
"
/xxxAction.do?action=doAjax
"
,
null
,
"
text
"
,processRequest);
}
//
处理返回信息的函数
function processRequest()
{
var f
=
document.forms[
0
];
if
(http_request.readyState
==
4
)
{
//
判断对象状态
if
(http_request.status
==
200
)
{
//
信息已经成功返回,开始处理信息
var returnStr
=
http_request.responseText;
//
alert(http_request.responseText);
if
(returnStr.indexOf(
"
Error
"
)
==-
1
)
{
f.textname.value
=
returnStr;
}
else
{
f.textname.value
=
""
;
}
}
else
{ file:
//
页面不正常
alert(
"
您所请求的页面有异常。
"
);
}
}
}
</
script
>
3、在java的action中进行相应的逻辑处理:
/** */
/**
* ajax取得信息
*
@param
mapping
*
@param
form
*
@param
request
*
@param
response
*
@throws
Exception
*/
public
void
doAjax(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws
Exception
{
//
加逻辑关系
response.setContentType(
"
text/html;charset=GB2312
"
);
PrintWriter out
=
response.getWriter();
out.print(
"
只要不输血,你想输出什么都可以!
"
);
out.close();
}
posted on 2006-11-09 15:25
sojust 阅读(673)
评论(0) 编辑 收藏