AJAX技术(1)

AJAX : Asynchronous JavaScript and XML

XMLHttpRequest是AJAX技术的核心部分。AJAX是对于页面的局部刷新。

首先,通过一个简单的小程序来理解。

这里是一个简单的对用户名进行认证。


如下图所示,当用户输入用户名后,光标移到密码框时,自动对用户名进行认证。

使用AJAX方式,可以使网页不发生跳转。也就是局部刷新一下。使用户体验更加良好。

 

第一步:

首先先写出JSP页面中的基本代码。

JSP页面框架代码如下:

<%@ page language="java" import="java.util.*"pageEncoding="UTF-8"%>

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN">

<html>

  <head>

    <title>AJAX 使用范例</title>

  </head>

 

  <body>

    <center>

    <h1>注册新账户</h1>

    <form action='#'  method='post' name ='registerForm' >

    <td>

    用户名:<input type='text' name = 'username' onblur= '#'>

    <div id = 'usernameMsg'></div>

    密&nbsp&nbsp&nbsp码:<input type = 'password'name ='password' > <br>

    确认密码:<input type = 'password'name ='passwordConfirm'> <br>

    性&nbsp&nbsp&nbsp别:<input type = 'radio'  name = 'sex' value=''>

                      <input type = 'radio'  name = 'sex' value = ''><br>

    邮&nbsp&nbsp&nbsp箱:<input type ='text' name = 'email' > <br>

    <input type = 'button'value = '重置' >

    <input type = 'button'value = '提交'>

   

    </td>

    </form>

    </center> 

  </body>

</html>

 

第二步:

在页面中间写入我们的javascript函数。

1、首先我们要创建一个XMLHttpRequest对象。

var xmlHttpRequest;

    function createXMLHttpRequest()

    {

        if(window.XMLHttpRequest)

            {

               xmlHttpRequest = new XMLHttpRequest(); //ie7之后的版本

            }

        else if(window.ActiveObject)

            {

               xmlHttpRequest = new ActiveObject("Msxml2.XMLHTTP");  //ie7之前的版本

            }

    }

创建XMLHttpRequest对象会因为所使用的浏览器不同,而创建不同。而且方法随着时间的改变也发生了一些变化。

2、写一个函数判断用户名是否存在。在这个函数中调用发送请求的函数。

function usernameIsExist()

    {

        var username= document.registerForm.username.value;

        sendRequest("register?username="+username);

    }

3、在此函数中建立对服务器的调用。使用open方法。

function sendRequest(url)

    {

        createXMLHttpRequest();

        xmlHttpRequest.open("GET",url,true);

        xmlHttpRequest.onreadystatechange =processResponse;

        xmlHttpRequest.send(null);

    }

4processResponse方法根据请求的状态做出响应。

function processResponse()

    {

        if(xmlHttpRequest.readyState== 4)

            {

                  if(xmlHttpRequest.status == 200)

                     {  

                         var responseInfo = xmlHttpRequest.responseXML.

                                          getElementsByTagName("msg")[0].firstChild.data;

                         var div1 = document.getElementById("usernameMsg");

                         if(responseInfo =="Exist")

                            {

                                div1.innerHTML= "<font color='red'>该用户名已存在</font>";

                            }

                         else

                         {

                                div1.innerHTML= "<font color ='green'>用户名可用</font>";

                            }

                      }

            }

5、编写servlet方法。(这里只简单的判断了一下用户名是否等于shj,其实可以连接到数据库进行查询再返回)

public void doPost(HttpServletRequest request,HttpServletResponse response)

           throws ServletException, IOException {

       String username = request.getParameter("username");

      

       response.setContentType("text/xml");

       PrintWriter out = response.getWriter();

      

       if(username =="shj"||username.equals("shj"))

       {

           out.println("<msg>Exist</msg>");

       }

       else{

           out.println("<msg>NotExist</msg>");

       }

       out.flush();

       out.close();

    }

测试效果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值