Ajax应用

1、Ajax简介:Ajax是由JavaScript推出的,由jQuery进行封装,方便使用;Ajax是异步请求,局部刷新,通过异步请求,请求到服务器端数据后,通过脚本修改页面的部分内容。
2、Ajax三种请求方式实现:
index.jsp

<%@page contentType="text/html; UTF-8" language="java" pageEncoding="UTF-8" %>
<html>
<head>
    <script src="script/jquery-1.7.2.js"></script>
    <script>
        $(function() {
            /**
             * 第一层Ajax请求
             * 方式:$.ajax({
             *     url:'xxx',  //请求地址
             *     data:{key,value,...},  //请求参数
             *     dataType:'json',  //html,text,json,....   //返回值类型
             *     success:function(data){},   //请求成功后,返回值
             *     error:function(){},     //请求异常
             *     type:'POST'  //POST,GET   //请求方式
             * })
             **/

            /*$("#sub").click(function(){
                $.ajax({
                    url: "ajaxRequest",  //请求地址
                    data:{id:42,username:"张三",address:"测试地址!!!"},   //请求参数
                    dataType:"json",   //请求返回值结果
                    success:function(data){
                        alert(data.userName+"的登录密码是:"+data.passWord);
                    },
                    error:function(data){
                        alert("请求返回值异常!!!");
                    },
                    type:"POST"    //请求方式
                });
            })*/

            /**
             * 第二层Ajax请求:简化$.ajax({}),
             * 方式:
             * $.post(
             *          'url',             //请求地址
             *          {key:value,...},   //请求参数
             *          function(data){},  //请求成功方法
             *          'json'             //返回值类型
             * )
             */
            /*$("#sub").click(function () {
                $.post('ajaxRequest', {id: 45, username: "李四", address: "李四的测试地址。"},
                    function (data) {
                        var result = "";
                        for (var i = 0; i < data.length; i++) {
                            result += "<tr>";
                            result += "<td>" + data[i].id + "</td>";
                            result += "<td>" + data[i].userName + "</td>";
                            result += "<td>" + data[i].address + "</td>";
                            result += "</tr>";
                        }
                        $("#val").html(result);
                    },
                    "json"
                );
            })*/

            /**
             * 第三层Ajax请求:简化$.get/post({}),
             * 方式:
             * $.post(
             *          'url',             //请求地址
             *          {key:value,...},   //请求参数
             *          function(data){},  //请求成功方法
             * )
             */

            $("#sub").click(function () {
                $.getJSON('ajaxRequest',
                    {id: 48, username: "王五", address: "王五的测试地址!!!!!"},
                    function (data) {
                        var result = "";
                        for (var i = 0; i < data.length; i++) {
                            result += "<tr>";
                            result += "<td>" + data[i].id + "</td>";
                            result += "<td>" + data[i].userName + "</td>";
                            result += "<td>" + data[i].address + "</td>";
                            result += "</tr>";
                        }
                        $("#val").html(result);
                    }
                )
            })

        })
    </script>
</head>
<body>
<h2>Ajax请求!!!</h2>
<br>
<hr>
<br>
<input type="submit" id="sub" value="点击测试Ajax"></input>
<br>
<hr>
<br>
<table border="1">
    <tr>
        <td>ID</td>
        <td>姓名</td>
        <td>地址</td>
    </tr>
    <tbody id="val">

    </tbody>
</table>
</body>
</html>

第一种方式(也是功能最全的方式):

  • 第一层Ajax请求
    * 方式:$.ajax({
    * url:‘xxx’, //请求地址
    * data:{key,value,…}, //请求参数
    * dataType:‘json’, //html,text,json,… //返回值类型
    * success:function(data){}, //请求成功后,返回值
    * error:function(){}, //请求异常
    * type:‘POST’ //POST,GET //请求方式
    * })

第二种方式(对第一种方式的简化):

  • 第二层Ajax请求:简化$.ajax({}),
    * 方式:
    * $.post(
    * ‘url’, //请求地址
    * {key:value,…}, //请求参数
    * function(data){}, //请求成功方法
    * ‘json’ //返回值类型
    * )
    第三种方式(对第二种方式的简化):
  • 第三层Ajax请求:简化$.get/post({}),
    * 方式:
    * $.post(
    * ‘url’, //请求地址
    * {key:value,…}, //请求参数
    * function(data){}, //请求成功方法
    * )
    3、服务端数据处理:
    jsonServlet .java
package Servlet;
import Model.User;
import com.fasterxml.jackson.databind.ObjectMapper;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
@WebServlet("/ajaxRequest")
public class jsonServlet extends HttpServlet {
    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        String id = req.getParameter("id");
        String username = req.getParameter("username");
        String address = req.getParameter("address");
        User user = new User();
        user.setUserName(username);
        user.setAddress(address);
        user.setPassWord("123456");
        User user1 = new User();
        user1.setId(21);
        user1.setUserName("张三");
        user1.setPassWord("123456");
        user1.setAddress("这是什么东西!!!");
        List<User> list = new ArrayList<>();
        list.add(user);
        list.add(user1);
        ObjectMapper mapper = new ObjectMapper();
        String result = mapper.writeValueAsString(list);
        res.setContentType("application/json;charset=utf-8");
        PrintWriter out = res.getWriter();
        out.print(result);
        out.flush();
        out.close();
    }
}

4、需要引入的包
4.1、将数据转换成json格式:

 ObjectMapper mapper = new ObjectMapper();
        String result = mapper.writeValueAsString(list);

需要引入的包:
在这里插入图片描述

4.2、将数据写出到页面的操作:

res.setContentType("application/json;charset=utf-8");
        PrintWriter out = res.getWriter();
        out.print(result);
        out.flush();
        out.close();
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值