JavaWeb 原生Ajax

        <script type="text/javascript">
            function checkUsername(username){
              //发送ajax 请求 ,验证用户名是否可用
              //发送ajax 请求的代码包括4步 这四步骤是固定的
              //比传统请求要麻烦一些
              //AJAX发送请求全靠浏览器内置的这个对象    XMLHttpRequest对象
              // 使用这个XMLHttpRequest对象 可以再浏览器当中单独启动一个新的浏览器线程 ,通过浏览器线程发送该请求
              //达到异步效果
              //1.创建AJAX核心对象XMLHttpRequest《浏览器内置的,可以直接使用)
              var xhr;
              if(window.XMLHttpRequest){
                    xhr= new XMLHttpRequest();
              }else{
                    xhr = new ActiveXObject("Microsoft.XMLHTTP");
              }

              //2.//注册回调函数
              //程序执行到这里的时候,后面的回调函数并不会执行,只是将回调函数注册给xhr对象
              //等xhr对象的readyState发生改变的时候,后面的回调函数会执行
              //0 请求未初始化(在调用 open() 之前)
              //1 请求已提出(调用 send() 之前)
              //2 请求已发送(这里通常可以从响应得到内容头部)
              //3 请求处理中(响应中通常有部分数据可用,但是服务器还没有完成响应)
              //4 请求已完成(可以访问服务器响应并使用它)

              xhr.onreadystatechange = function () {
                  if (xhr.readyState == 4){//服务器响应结束
                    //可能会遇到404错误  500  需要判断
                    if (xhr.status == 200){//
                //获取到span标签
var nameTipMsg = document.getElementById("nameTipMsg");   //返回文本到span
              nameTipMsg.innerText
= xhr.responseText; // var s = xhr.responseText; }else{ } } } //当按钮对象注册一个鼠标点击事件,当按钮上发生鼠标单击的时候,会执行回调函数 //myBtn.onclick = function(){} //3. xhr.open("GET","checkusername.do?username=" + username,true);//只开启通道,不发送请求 //4.发送AJAX请求 xhr.send(); } </script> 用户名:<input type="text" name="username" onblur="checkUsername(this.value);"/> <span id="nameTipMsg" style="font-size: 12px;"></span><br> 密码:<input type="password" name="password"> serlvet 3.0 @WebServlet(name = "CheckUsernameAction",urlPatterns = "/checkusername.do") public class CheckUsernameAction extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.sendRedirect("text/html;charset=UTF-8"); PrintWriter out = resp.getWriter(); //获取用户名 String username = req.getParameter("username"); //连接数据库验证用户名是否存在 if("admin".equals(username)){ //用户名不可用 out.print("<font color='red'>用户名被注册</font>"); }else{ out.print("<font color='green'>用户名可注册</font>"); } //响应信息给浏览器 } }
 

猜你喜欢

转载自www.cnblogs.com/rzkwz/p/12501393.html