ajax-jQuery实现

一.Ajax

1. 标准请求响应时浏览器的动作(同步操作)
  浏览器请求什么资源,跟随显示什么资源
2. ajax:异步请求.
  局部刷新,通过异步请求,请求到服务器资源数据后,通过脚本修改页面中部分内容.
3. ajax 由 javascript 推出的
  由 jquery 对 js 中 ajax 代码进行的封装,达到使用方便的效果.
4. jquery 中 ajax 分类
  1)第一层 $.ajax({ 属性名:值,属性名:值})
    是 jquery 中功能最全的.代码写起来相对最麻烦的.
    示例代码

/*
url: 请求服务器地址 
data:请求参数 
dataType:服务器返回数据类型 
error 请求出错执行的功能 
success 请求成功执行的功能,function(data) data 服务器返回的数据.
type:请求方式 
*/ 
$("a").click(function(){ 
    $.ajax({ 
        url:'demo',
        data:{"name":"张三"}, 
        dataType:'html', 
        error:function(){
            alert("请求出错.")
        }, 
        success:function(data){
            alert("请求成功"+data)
        }, 
        type:'POST' 
    }); 
    return false;
})

  2)第二层(简化$.ajax)
    $.get(url,data,success,dataType))
    $.post(url,data,success,dataType)
  3)第三层(简化$.get())
    $.getJSON(url,data,success). 相当于设置 $.get 中dataType=”json”
    $.getScript(url,data,success) 相当于设置 $.get 中dataType=”script”
5. 如果服务器返回数据是从表中取出.为了方便客户端操作返回的数据,服务器端返回的数据设置成 json
  1)客户端把 json 当作对象或数组操作.
6. json:数据格式.
  1)JsonObject:json 对象,理解成 java 中对象
    {“key”:value,”key”:value}
  2)JsonArray:json 数组
    [{“key”:value,”key”:value},{}]
7.代码示例
  1)jsp中:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="js/jquery-1.7.2.js"></script>
<script type="text/javascript">
$(function(){
    /*
    url: 请求服务器地址
    data:请求参数
    dataType:服务器返回数据类型
    error请求出错执行的功能
    success请求成功执行的功能,function(data) data服务器返回的数据.
    type:请求方式
    */
    $("a").click(function(){
        /* $.ajax({
            url:'demo',
            data:{"name":"张三"},
            dataType:'html',
            error:function(){
                alert("请求出错.")
            },
            success:function(data){
                alert("请求成功"+data)
            },
            type:'POST'
        }); */
        $.post("demo",{"name":"张三"},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].password+"</td>"
                result+="</tr>";
            }
            //相当innerHTML先清空后添加
            $("#mytbody").html(result);
        })
        return false;
    })
});
</script>
</head>
<body>
<a href="demo">跳转</a>
<table border="1">
    <tr>
        <td>编号</td>
        <td>姓名</td>
        <td>密码</td>
    </tr>
    <tbody id="mytbody"></tbody>
</table>
</body>
</html>

  2)servlet中

@WebServlet("/demo")
public class DemoServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("执行控制器");
        String name = req.getParameter("name");
        Users users = new Users();
        users.setId(1);
        users.setPassword("123");
        users.setUsername("张三");
        Users users1 = new Users();
        users1.setId(2);
        users1.setPassword("22");
        users1.setUsername("李四");
        
        List<Users> list = new ArrayList<Users>();
        list.add(users1);
        list.add(users);
        
        ObjectMapper mapper = new ObjectMapper();
        String result = mapper.writeValueAsString(list);
        
        resp.setContentType("application/json;charset=utf-8");
        PrintWriter out = resp.getWriter();
        out.println(result);
        out.flush();
        out.close();
    }
}

猜你喜欢

转载自www.cnblogs.com/sunny-sml/p/12683209.html