使用ajax技术无刷新页面

一:       首先看个小例子(通过GET方式进行无刷新获取服务端的响应数据)

<script type="text/javascript" language="javascript">

    var xmlHttpRequest=null;

    function ajaxSubmit()

    {   //获取文本输入框的值  

       var v1=document.getElementById("NUM1").value;

       var v2=document.getElementById("NUM2").value;

       if(window.ActiveXObject) // IE浏览器

       {

           xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");

       }

       elseif (window.XMLHttpRequest)  //IE外的其他浏览器实现

       {

       xmlHttpRequest=new XMLHttpRequest();

       }

 

       if(null != xmlHttpRequest)

       {

          //GET是提交的方式(注意这边要大写,POST也一样) ajaxServlet是你要关联的无刷新的服务端的servlettrue是设置你是否要进行异步

         xmlHttpRequest.open("GET", "ajaxServlet?v1="+v1+"&v2="+v2,true);   //注意这边使用的是GET方式进行提交的时候,我们要传递参数时要写在url后面

        //关联好ajax的回调函数

         xmlHttpRequest.onreadystatechange=ajaxCallBack;

         xmlHttpRequest.send(null);

 

       }

 

       function ajaxCallBack()

       {

       if(xmlHttpRequest.readyState == 4)

       {

           if(xmlHttpRequest.status == 200)

           {

             //获取服务端的数据

              var responseText=xmlHttpRequest.responseText;

              document.getElementById("div1").innerHTML=responseText;

           }

       }     

       }

     }

   

    </script> 

  </head>

 

  <body>

    <input type="button" value="get content from server" onclick="ajaxSubmit();"><br>

    <input type="text" name="num1" id="NUM1"><br/>

    <input type="text" name="num2" id="NUM2"><br/>

    <div id="div1"></div>

</body>

 

ajaxServlet.java代码

public class ajaxServlet extends HttpServlet {

 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

  response.setContentType("text/html;charset=utf-8");
  request.setCharacterEncoding("utf-8");
  PrintWriter out = response.getWriter();
  System.out.println("这是doget方式的doget invoke");
  String num1=request.getParameter("v1");
  System.out.println(num1);
  String num2=request.getParameter("v2");
  System.out.println(num2);
  int number1 = Integer.valueOf(num1);
  int number2 = Integer.valueOf(num2);
  
  String sum = String.valueOf(number1 + number2);  //将两个文本框的数字进行相加,输出
  
  out.println(sum);
  out.flush();
  out.close();
  
 }

}

 

 

 

二:     小例子2(ajax通过post方式进行无刷新获取服务端的响应数据)

ajax.jsp代码:

<script type="text/javascript" language="javascript">

    var xmlHttpRequest=null;

    function ajaxSubmit()

    {     

       var v1=document.getElementById("NUM1").value;

       var v2=document.getElementById("NUM2").value;

       if(window.ActiveXObject) // IE浏览器

       {

           xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");

       }

       elseif (window.XMLHttpRequest)  //除ie外的浏览器

       {

       xmlHttpRequest=new XMLHttpRequest();

       }

 

       if(null != xmlHttpRequest)

       {

         xmlHttpRequest.open("POST", "ajaxServlet",true);   //这边用post方式时,我们传的参数不要写在url后面,因为post和get的提交请求的方式是不同的

         xmlHttpRequest.onreadystatechange=ajaxCallBack;

       // 使用post方式提交,必须要加上如下一行

        xmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

         xmlHttpRequest.send("v1="+v1+"&v2="+v2);    //使用post方式时,我们要传的参数要写在send方法中

 

       }

 

       function ajaxCallBack()

       {

       if(xmlHttpRequest.readyState == 4)

       {

           if(xmlHttpRequest.status == 200)

           {

              var responseText=xmlHttpRequest.responseText;

              document.getElementById("div1").innerHTML=responseText;

           }

       }  

       }

    }

    </script>

  </head>

 

  <body>

    <input type="button" value="get content from server" onclick="ajaxSubmit();"><br>

    <input type="text" name="num1" id="NUM1"><br/>

    <input type="text" name="num2" id="NUM2"><br/>

    <div id="div1"></div>

  </body>

 

ajaxServlet.java代码

public class ajaxServlet extends HttpServlet {

 @Override
 protected void doPost(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  // TODO Auto-generated method stub
  
  resp.setContentType("text/html;charset=utf-8");
  req.setCharacterEncoding("utf-8");
  PrintWriter out = resp.getWriter();
  System.out.println("这是dopost方式的dopost invoke");
  String num1=req.getParameter("v1");
  System.out.println(num1);
  String num2=req.getParameter("v2");
  System.out.println(num2);
  int number1 = Integer.valueOf(num1);
  int number2 = Integer.valueOf(num2);
  
  String sum = String.valueOf(number1 + number2);
  
  out.println(sum);
  out.flush();
  out.close();
  
 }

}

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值