jquery中的ajax

案例一:

  前端代码:    

<script>
        function submits(){
        $.ajax({//要想使用ajax要先导入jquery,,一个新版本,一个老版本
         type: "POST",//类型
         url: "testAjax.do",//地址
         data: {"user":JSON.stringify($('#testAjax').serializeJSON())},//传递的数据1(对象JSON)
         //data:$('#testAjax').serializeJSON(),//传递的数据2(对象),最好别用,这个最麻烦
         //data: {"user":"ssd"},//传递的数据3(文本)
         dataType: "text",//你收到服务器数据的格式 text,json
         //contentType:"application/json",//你发送给服务器的格式,除了用数据2,不然不用设置
         success: function(data){//代表成功之后的函数,在下面执行你的判断,data就是我发回来的‘yes’
                 if(data=='yes'){
                     alert(data+",666");
                 }
          }
          //下面还可以添加失败的函数,自己学习吧
        });
        } 
    </script>

后台代码:

     // fastjson 使用(https://blog.csdn.net/wild46cat/article/details/52883081)
        Map<String, Object> map=(Map<String,Object>)JSON.parse(res.getParameter("user"));
        System.out.println(map.get("name"));//将对象转成MAP数组,可以直接get属性值得到值
       
        //jackson   使用(https://blog.csdn.net/zmx729618/article/details/52161069)
        ObjectMapper mapper=new ObjectMapper();//实例化帮助器
        Human man=mapper.readValue(res.getParameter("user"),Human.class);//将JSON转成对象
        String myjson = mapper.writeValueAsString(man);//将对象转JSON
        System.out.println(man.toString());
        System.out.println(myjson);
        
        PrintWriter out=rp.getWriter();//实例化打印器
        out.print("yes");//返回消息给前台,可以是普通文本,可以是JSON

 

案例二:

  前端代码:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE html>
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>Refresh Test</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
    <script src="js/jquery.serializejson.js"></script>
    <script type="text/javascript">
    
        function boby(vars){
                return "<tr><td>"+vars.name+"</td><td>"+vars.password+"</td></tr>";//简单的HTML语句
        }
        
    //val()-->值
    //text()-->表单信息
    //html()-->innerHTML
        function load(index){
            if(index=="")return;//判断input输入数字后是否为空
                $.ajax({
                    type:"POST",
                    url:"testRefresh.do",
                    data:{"index":index},//传递页数
                    dataType: "text",
                    success: function (data){
                        if(data=="200"){
                            alert("请输入正确的页码");
                            return;}//后台报错
                        $("#table").html("");//如果数据成功获得,将表格清空
                        var lists=eval("("+data+")");//将后台发回来的JSON转成数组
                        for(var i=0;i<lists.length;i++){//迭代
                            $("#table").html(($("#table").html()+boby(lists[i])));//给表格赋值
                        }
                        $('#index').val(index==null||index<1?1:index);//给input里面的页数赋值
                    }
                });
        }
        
    </script>
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>
  
  <body οnlοad="load(1)">
  
    <table id="table"><!-- 通过Ajax改变表格中的内容  -->
    </table>
    
    <input type="button" value="上一页" οnclick="load(parseInt($('#index').val())-1)"/>
    <input id="index" type="text" οnkeyup="load($('#index').val())" style="width: 30px" />
    <input type="button" value="下一页" οnclick="load(parseInt($('#index').val())+1)"/>
    
  </body>
  
</html>

 

后台代码:

 

package Servlets;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.fasterxml.jackson.databind.ObjectMapper;

import Entity.Human;

public class testRefresh extends HttpServlet{
    
    private List<Human> lists=new ArrayList<Human>();//数据承载
    private int size=10;//可以实现前端传入
    
    private String getJson(int page){
        lists.clear();//每次取数据之前把数据清空
        for (int i = (page*size)-9; i <= page*size; i++) {//模拟分页
            lists.add(new Human("zengheng"+i, "1509755661"));//放入模拟数据
        }
        try {
            return new ObjectMapper().writeValueAsString(lists);//将数据写成JSON
        } catch (Exception e) {
        //TODO: handle exception
            return null;
        }
    }
    
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        doPost(req, resp);
    }
    
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        PrintWriter print=response.getWriter();
        try {
            print.write(getJson(Integer.parseInt(request.getParameter("index"))));//写出JSON
        } catch (Exception e) {
            // TODO: handle exception
            print.write("200");//报错非法字符 ("" 以及符号)
        }
        finally{
            print.flush();
            print.close();
        }
    }

}
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值