request.setCharacterEncoding("utf-8"); response.setHeader("content-Type", "text/html;charset=utf-8"); // 讀取參數 String mail = request.getParameter("mail"); System.out.println("debug:mail:" + mail); String result = "false"; if (mail.equalsIgnoreCase("qq")) { result = "true"; } // 輸出結果 PrintWriter out = response.getWriter(); out.print(result); out.flush();
/** * 創建xmlHttpRequest對象 * * 兼容版本 * * 開發時間:2016-5-18 上午10:00:49 * @author MrFalse */ function createXMLHttpRequest(){ // 定義變量 var request=null; if(window.XMLHttpRequest){ request=new XMLHttpRequest(); }else{ // 兼容早期IE5、IE6浏覽器 request=new ActiveXObject("Microsoft.XMLHTTP"); } return request; } /** * 驗證郵箱 * * * 開發時間:2016-5-18 上午10:05:07 * @author MrFalse * @param oInput */ function checkUserName(oInput){ // 讀取輸入框的的值 var strUserName=oInput.value; if(strUserName==null||strUserName==""){ userNameMessage.innerHTML="郵箱不能為空"; return; } // 創建XMLHttpRequest對象 var xmlHttpRequest=createXMLHttpRequest(); // 設置回調函數 xmlHttpRequest.onreadystatechange=function(){ if(xmlHttpRequest.readyState==4&&xmlHttpRequest.status==200){ var strReturnString=xmlHttpRequest.responseText; if(strReturnString.indexOf("true")>=0){ userNameMessage.innerHTML="用戶名已經被占用"; userNameMessage.className="red"; }else{ userNameMessage.innerHTML="用戶名可以使用"; userNameMessage.className="blue"; } } } var url="RegisterServlet"; xmlHttpRequest.open("post",url,true); // 設置頭信息 xmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); // 參數數據,使用key=value&key=value……的方式 var urlParam="mail="+strUserName; //發送請求 xmlHttpRequest.send(urlParam); }
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>注冊頁面</title> <script type="text/javascript" src="register.js"></script> <style type="text/css"> .blue{ color: blue; font-weight: normal; } .red{ color: red; font-weight: bold; } </style> </head> <body> <form action=""> <p>注冊郵箱:<input type="text" onblur="checkUserName(this);"/>*<span id="userNameMessage"></span></p> </form> </body> </html>
jQuery實現Ajax jquery常用Ajax方法
$.ajax() 綜合的請求,比較強大,功能較全,但是復雜 $.get() get方式請求,但是帶參數時轉為post請求
$.post() post方式請求 $.getJSON() 獲取服務器返回的json數據 $(selecter).load() 將服務器返回的數據加載到選擇器選中的內容中
使用$.ajax()1.服務器代碼使用上面代碼(s_1) 2.html代碼(h_2)
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>ajax請求jquery</title> </head> <body> <form action=""> <p><input type="text" name="email" id="email" onblur="requestxx(this);"/> <span id="prompt">*</span> </p> </form> </body> </script> </html>3.為h_1添加jquery代碼如下 encodeURI(thisobj.value)使用情況 1.get模式時 2.傳參是url模式 3.參數中有中文 jq_1
<!-- 導入jquery庫 --> <script type="text/javascript" src="js/jquery-1.8.3.js"></script> <script type="text/javascript"> function requestxx(thisobj){ //對中文進行uri編碼 email=encodeURI(thisobj.value); $.ajax({ url:"RegisterServlet", type:"get", data:"mail="+email, //執行成功的回調函數 success:function(result,textStatus){ if(result.indexOf("true")>=0){ $("#prompt").text("用戶名已經被占用"); }else{ $("#prompt").text("用戶名可以使用"); } }, //執行失敗或錯誤的回調函數 error:function(){ alert("ajax執行失敗"); } }); } </script>
使用$.get()1.服務器代碼使用上面代碼(s_1) 2.html代碼使用上面代碼(h_2) 3.為h_2添加jquery代碼如下 jq_2
<script type="text/javascript" src="js/jquery-1.8.3.js"></script> <script type="text/javascript"> function check(input){ $.get("RegisterServlet","mail="+input.value,function(result){ if(result.indexOf("true")>=0){ $("#prompt").text("用戶名已經被占用"); }else{ $("#prompt").text("用戶名可以使用"); } }); } </script>
使用$.post()1.服務器代碼使用上面代碼(s_1) 2.html代碼使用上面代碼(h_2) 3.為h_2添加jquery代碼如下 jq_3
<script type="text/javascript"> function check(input){ $.post("RegisterServlet","mail="+input.value,function(result){ if(result.indexOf("true")>=0){ $("#prompt").text("用戶名已經被占用"); }else{ $("#prompt").text("用戶名可以使用"); } }); } </script>
使用$.getJSON()1.服務器代碼(s_2 Servlet)
request.setCharacterEncoding("utf-8"); //兩種響應頭都可以使用 response.setHeader("Content-Type", "application/json;charset=utf-8"); //response.setHeader("content-Type", "text/html;charset=utf-8"); PrintWriter out=response.getWriter(); //返回的json格式必須是嚴格的json格式,否則浏覽器無法調用 out.print("{\"name\":\"張三\"}"); out.flush();2.html代碼 h_3
<button onclick="clickTest()">提交</button>3.為h_2添加jquery代碼如下 jq_4
<script type="text/javascript"> function clickTest() { $.getJSON("ResponseJSON",function(data) { alert(data.name); }) } </script>
使用$(selecter).load()1.使用上面服務器代碼s_2 2.html代碼使用上面代碼(h_2) 3.為h_2添加jquery代碼如下 jq_5
<script type="text/javascript"> function check(input){ $("#prompt").load("RegisterServlet","mail="+input.value); } </script>
注意:
$.parseJSON(str)的使用demo
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>jqueryParseJSON</title> <script type="text/javascript" src="js/jquery-1.8.3.js"></script> <script type="text/javascript"> function test() { //json的字符串 var jsonStr = '{"name":"張三","age":20}'; //解析成json對象 var jsonObj = $.parseJSON(jsonStr); alert("name:" + jsonObj.name + "age:" + jsonObj.age); } </script> </head> <body> <button onclick="test()">測試</button> </body> </html>result: