AJAX入门
AJAX入门基本介绍
PS:参考文档:《W3School——AJAX 教程》 使用步骤获得ajax引擎//创建一个XMLHttpRequest对象,利用此对象与服务器进行通信 是AJAX技术的核心(兼容IE,FireFox,Opera 8.0+,Safari)
function getXMLHttpRequest(){
var xmlHttp;
try {
// Firefox,Opera 8.0+,Safari
xmlHttp=new XMLHttpRequest();
}
catch (e) {
try {
// Internet Explorer
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try{
// Internet Explorer
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
}
}
}
return xmlHttp;
}
var xmlHttp = getXMLHttpRequest();
设置回调函数xmlHttp.onreadystatechange = function(){
if(xmlhttp.readyState == 4){
if(xmlhttp.status == 200){
alert("响应数据" + xmlhttp.responseText);
}
}
};
确定请求方式、路径及参数xmlHttp.open("POST","${pageContext.servletContext.contextPath}/CheckUserNameIsExistServlet");
发送请求xmlHttp.send("username=" + obj.value );
案例:登陆验证验证HTML<div class="form-group">
<label for="username" class="col-sm-2 control-label">用户名</label>
<div class="col-sm-6">
<!-- 绑定一个离焦事件,用于Ajax判定用户名是否合法 -->
<input type="text" class="form-control" id="username" name="username" placeholder="请输入用户名" onblur="checkUserName(this)">
</div>
<div class="col-sm-4" id="userNameInfo">
<!-- <span class="label label-success">用户名可用</span> <span class="label label-danger">用户名不可用</span> -->
</div>
</div>
JavaScript使用AJAX实现用户名验证<script type="text/javascript"> // JavaScript使用AJAX //创建一个XMLHttpRequest对象,利用此对象与服务器进行通信 是AJAX技术的核心 function getXMLHttpRequest(){ var xmlHttp; try { // Firefox,Safari xmlHttp=new XMLHttpRequest(); } catch (e) { try { // Internet Explorer xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try{ // Internet Explorer xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { } } } return xmlHttp; } function checkUserName(obj) { // 获得AJAX引擎 var xmlHttp = getXMLHttpRequest(); // 设置回调函数 xmlHttp.onreadystatechange = function() { // XMLHTTP请求的状态为:已完成,当前请求的http状态码:200成功 if(xmlHttp.readyState == 4 && xmlHttp.status == 200) { // 获取信息,并且放在"userNameInfo"中 document.getElementById("userNameInfo").innerHTML = xmlHttp.responseText; } }; // 确定请求方式,路径,如果是Get请求,需要在路径后写参数 // GET请求方式 // xmlHttp.open("GET","${pageContext.servletContext.contextPath}/CheckUserNameIsExistServlet?username=" + obj.value); // POST请求方式 xmlHttp.open("POST","${pageContext.servletContext.contextPath}/CheckUserNameIsExistServlet"); // 设置请求编码(POST必须要表单提交,GET可以不设置) xmlHttp.setRequestHeader("content-type","application/x-www-form-urlencoded"); // 发送请求 // GET,数据在url里 // xmlHttp.send(null); // POST,填写参数 xmlHttp.send("username=" + obj.value ); } </script>
Servlet方法public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
// 获取用户名参数
String username = request.getParameter("username");
// 查询用户
try {
User user = new UserService().getUserByUserName(username);
if (user == null) {
response.getWriter().write("<span class='label label-success'>用户名可用</span>");
} else {
response.getWriter().write("<span class='label label-danger'>用户名不可用</span>");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public void doPost(HttpServletRequest request,IOException {
doGet(request,response);
}
PS:GET请求和POST请求有些微区别,大致是:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |