jQuery封装的AJAX

XMLHttpRequest在使用时比较繁琐,从创建到判定等操作需要较多的代码,因此,jQuery对XMLHttpRequest进行了很好的封装,提高了开发效率。

1、jQuery封装的AJAX的get方法(异步方式)

(1)创建jsp页面,向服务器提供数据

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>jQuery封装的Ajaxtitle>
    <script type="text/javascript" src="jq/jquery-1.8.3.js" >script>
    <script type="text/javascript">
     function f(){
       $.get(
             "${pageContext.request.contextPath}/ajaxservlet",
               {"username":"Tom","age":13}
       );
     }
    script>
  head>
  <body>
      <button type="button" onclick="f()">请点击button>
  body>
html>

因为该方法是封装在jQuery内部的,因此需要引入jq的相应文件。

(2)创建一个servlet,获取jsp中的数据:

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      String username= request.getParameter("username");
      String age= request.getParameter("age");
       System.out.println(username);
       System.out.println(age);
    }

jQuery封装的AJAX_第1张图片

 

 (3)回调函数

jsp:

<script type="text/javascript">
     function f(){
       $.get(
             "${pageContext.request.contextPath}/ajaxservlet",
               {"username":"Tom","age":13},
               function (data) {
                 alert(data);
               },
               "text"
       );
     }
    script>

servlet:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      String username= request.getParameter("username");
      String age= request.getParameter("age");
      response.getWriter().write("success");
       System.out.println(username);
       System.out.println(age);
    }

jQuery封装的AJAX_第2张图片

 

 jQuery封装的AJAX_第3张图片

 

 其中jsp函数中的参数data为servlet返回的数据,第四个参数为数据的存储格式。

(4)servlet返回json类型的数据:

jsp:

 <script type="text/javascript">
     function f(){
       $.get(
             "${pageContext.request.contextPath}/ajaxservlet",
               {"username":"Tom","age":13},
               function (data) {
                 alert(data.age);
               },
               "json"
       );
     }

servlet:

 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      String username= request.getParameter("username");
      String age= request.getParameter("age");
      response.getWriter().write("{\"name\":\"tom\",\"age\":\"11\"}");
       System.out.println(username);
       System.out.println(age);
    }

 

 jQuery封装的AJAX_第4张图片

 

 2、post方式

前端向服务器发送数据:不需要解决中文乱码问题,其它和get的一样。

服务器向客户端发送数据时:get和post方式都需要解决中文乱码码问题。

3、ajax方法

function f(){
       $.ajax(
               {
                 url:"${pageContext.request.contextPath}/ajaxservlet",
                 async:true,
                 type:"GET",
                 data:{"username":"Tom","age":13},
                 success:function (data) {
                   alert(data.age);
                 },
                 error:function () {
                   alert("服务器出错!!");
                 },
                 dataType:"json"
               }
       );

该方法可以说是涵盖了上述的get和post方法,而且与他们相比该方法更加灵活,只需要修改相应的参数即可对同步/异步,GET/POST提交方式等进行修改。

4、load方法

载入服务器的html文件并插入到DOM中。

你可能感兴趣的:(jQuery封装的AJAX)