您的位置:首页 > 编程语言 > Java开发

struts2_Ajax_post_解决了中文乱码问题

2010-10-28 17:17 495 查看
<!-- ###############################################################################
使用AJAX对用户名进行验证--begin
####################################################################################-->
<script type="text/javascript">

var xmlHttp;//公共的变量,代表XMLHttpRequest对象

//实例化对象
function createXMLHttpRequest(){
if(window.ActiveXObject){
xmlHttp=new ActiveXObject("microsoft.XMLHTTP");
}else{
xmlHttp=new XMLHttpRequest();
}
}

//发送数据
function sendRequest(url){
//alert("1");
createXMLHttpRequest();
//alert("2");
xmlHttp.open("POST",url,true);
//alert("3");
xmlHttp.onreadystatechange = processResponse;
//alert("4");
//使用post方式 发送数据的时候,必须加上这句话,否则数据发送不到服务器
xmlHttp.setRequestHeader("content-type",
"application/x-www-form-urlencoded");
//alert("5");
xmlHttp.send("username="+document.all.username.value);
//alert("6");
}

//接受返回数据
function processResponse(){
/*xmlHttp.readyState返回的5个int数的含义
0: 请求未初始化(还没有调用 open())。
1:请求已经建立,但是还没有发送(还没有调用 send())。
2:请求已发送, 正在处理中(通常现在可以从响应中获取内容头)。
3:请求在处理中;通常响应中已有部分数据可用了,但是服 务器还没有完成响应的生成。
4:响应已完成;您可以获取并使用服务器的响应了。
*/
//alert("7");
if(xmlHttp.readyState==4){
//alert("8");
if(xmlHttp.status==200){
//alert("9");
var message = xmlHttp.responseText;
if("@_#,该用户名已经被可以注册过了,请更换!" == message){
alert(message);
//username为form表单的text对象
document.getElementById("username").select();
document.all.myspan.innerText = "#_@";
}else{
document.all.myspan.innerText = "@_@";
}
//alert("10");
}
}
}

//加载促发函数
function checkUser(){
var username = document.all.username.value;
if("" == username){
alert("您没有输入用户名称!");
document.all.username.select();
return;
}else{
sendRequest("struts2.register!checkUsername.action");
}

}

</script>
<!-- ###############################################################################
使用AJAX对用户名进行验证--end
####################################################################################-->

--------------------------------------------------------------------------------------------

action代码:

/**

* 使用Ajax传递的参数
* 注册时检验是否存在该用户,不存在则允许注册
* @return
*/
public String checkUsername(){

//根据传递过来的username查询数据库,没有查到返回true
boolean bool = new UserDAOImpl().checkUsername(username);
if(bool){
try {
//设置response的编码方式
response.setCharacterEncoding("UTF-8");
//返回给Ajax的信息
response.getWriter().write("@_@,该用户名可以注册!");
} catch (IOException e1) {
e1.printStackTrace();
}

}else{
try {
//设置response的编码方式
response.setCharacterEncoding("UTF-8");
//返回给Ajax的信息
response.getWriter().write("@_#,该用户名已经被可以注册过了,请更换!");
} catch (IOException e1) {
e1.printStackTrace();
}
}

return null;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: