struts2_Ajax_post_解决了中文乱码问题
2010-10-28 17:17
513 查看
<!-- ###############################################################################
使用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;
}
使用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;
}
相关文章推荐
- JSP中,AJAX使用POST方式提交中文乱码问题解决
- JSP中,AJAX使用POST方式提交中文乱码问题解决
- AJAX下Post表单(解决中文乱码问题)
- Struts2中解决POST请求和GET请求中的中文乱码问题
- Struts2中解决POST请求和GET请求中的中文乱码问题
- Ajax的POST方法中文乱码问题解决
- struts2 + ajax 中文乱码问题解决
- 解决用jquery的get或者post提交方式提交到struts2中的action中文乱码问题
- AJAX下Post表单(解决中文乱码问题)
- 利用jquery实现Ajax技术,post方式传值中文乱码问题的解决办法。
- struts2 使用filter解决中文乱码问题
- Ajax通过POST方法发送中文信息乱码解决
- JSP,mysql,tomcat下(基于struts2)中文及其乱码问题的解决
- 解决全站字符乱码(POST和GET中文编码问题)
- JQuery中Ajax的Post提交在IE下中文乱码的解决方法
- 通过过滤器(Filter)解决JSP的Post和Request中文乱码问题
- HttpClient4.5.2版本中POST提交中文参数时乱码问题解决方法
- php使用curl post 发送url 并解决中文乱码问题
- Get,Post请求中文乱码问题有效解决方法
- struts2 解决中文乱码问题