struts2_Ajax_post_解決了中文亂碼問題
<!-- ###############################################################################
使用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");
//使用
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:請求已經建立,但是還沒有傳送(還沒有呼叫
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();
}
}
returnnull;
}