首页 > Web开发 > 详细

Ajax

时间:2020-03-17 18:57:26      阅读:54      评论:0      收藏:0      [点我收藏+]

Ajax

  • 引入jQuery
  • $.ajax()调用
    • url 请求地址
    • data 传递的参数
    • dataType 后台返回的数据类型(text/json)
    • success 成功的回调
    • error 失败的回调
    • complete 完成的回调

普通文本

<%--
  Created by IntelliJ IDEA.
  User: zongwei
  Date: 2020/3/15
  Time: 下午10:51
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <script type="text/javascript" src="js/jquery-3.4.1.min.js"></script>
    <script>
        $(function(){
            var btn = $('#btn');
            btn.click(function(){
                $.ajax({
                    url : '/ajaxServlet',
                    type : 'post',
                    dataType : 'text',
                    success : function(data){
                        var text = $('#id');
                        text.before(data + '<br/>');
                    }
                })
            });
        });
    </script>
</head>
<body>
    <input type="text" name="id" id="id"/>
    <input id="btn" type="submit" value="提交" />
</body>
</html>

json对象传递,需要引入6个jar,用于后端把对象处理成json格式

  • commons-collections-3.1.jar
  • commons-lang-2.5.jar
  • commons-beanutils-1.7.0.jar
  • commons-logging.jar
  • ezmorph-1.0.3.jar
  • json-lib-2.1-jdk15.jar
<%--
  Created by IntelliJ IDEA.
  User: zongwei
  Date: 2020/3/15
  Time: 下午11:25
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <script type="text/javascript" src="js/jquery-3.4.1.min.js"></script>
    <script>
        $(function(){
            var text = $('#btn');
            text.click(function(){
                $.ajax({
                    url : '/ajaxServlet2',
                    type : 'post',
                    dataType : 'json',
                    success : function(data){
                        $('#id').val(data.id);
                        $('#name').val(data.name);
                        $('#age').val(data.age);
                    }
                })
            })
        })
    </script>
</head>
<body>
    <input id="id" type="text" /><br/>
    <input id="name" type="text" /><br/>
    <input id="age" type="text" /><br/>
    <input type="button" id="btn" />
</body>
</html>
package com.claudxyz.servlet;

import com.claudxyz.entity.User;
import net.sf.json.JSONObject;
import net.sf.json.processors.JsonBeanProcessor;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/ajaxServlet2")
public class AjaxServlet2 extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        User user = new User("1","xxxx",20);

        JSONObject jsonObject = JSONObject.fromObject(user);

        resp.setCharacterEncoding("UTF-8");

        resp.getWriter().write(jsonObject.toString());
    }
}

三级联动

package com.claudxyz.servlet;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@WebServlet("/changeServlet")
public class ChangeServlet extends HttpServlet {

    static private Map<String, List<String>> resultMap = new HashMap<>();

    static List<String> list = new ArrayList<>();

    static {
        list.add("鼓楼区");
        list.add("下关区");
        list.add("秦淮区");
        resultMap.put("南京市",list);
        list = new ArrayList<>();
        list.add("扬州A区");
        list.add("扬州B区");
        list.add("扬州C区");
        resultMap.put("扬州市",list);
        list = new ArrayList<>();
        list.add("镇江A区");
        list.add("镇江B区");
        list.add("镇江C区");
        resultMap.put("镇江市",list);

        list = new ArrayList<>();
        list.add("南京市");
        list.add("扬州市");
        list.add("镇江市");
        resultMap.put("江苏省",list);

        list = new ArrayList<>();
        list.add("杭州市");
        list.add("嘉兴市");
        list.add("温州市");
        resultMap.put("浙江省",list);

        list = new ArrayList<>();
        list.add("合肥市");
        list.add("滁州市");
        list.add("马鞍山市");
        resultMap.put("安徽省",list);

        list = new ArrayList<>();
        list.add("杭州A区");
        list.add("杭州B区");
        list.add("杭州C区");
        resultMap.put("杭州市",list);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        resp.setCharacterEncoding("UTF-8");

        String type = req.getParameter("type");

        String id = req.getParameter("id");

        switch (type){
            case "1" :

                List<String> cityMap = resultMap.get(id);

                String areaValue = cityMap.get(0);

                List<String> areaList = resultMap.get(areaValue);

                Map<String,Object> reslutMap = new HashMap<>();

                reslutMap.put("c",cityMap);

                reslutMap.put("a",areaList);

                JSONObject jsonObject = JSONObject.fromObject(reslutMap);

                resp.getWriter().write(jsonObject.toString());

                break;

            case "2" :

                List<String> areaMap = resultMap.get(id);

                JSONArray jsonArray = JSONArray.fromObject(areaMap);

                resp.getWriter().write(jsonArray.toString());

                break;
        }


    }
}
<%--
  Created by IntelliJ IDEA.
  User: claudxyz
  Date: 2020-3-16
  Time: 14:53
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <script type="text/javascript" src="js/jquery-1.8.0.js"></script>
    <script>
        $(function(){
            var province = $('#province');
            province.change(function(){
                var privinceValue = $(this).val();
                $.ajax({
                    url : '/J2eeProject/changeServlet',
                    type : 'POST',
                    data : 'id=' + privinceValue + '&type=1',
                    dataType : 'json',
                    success : function(data){
                        var cityValue = '';
                        for(var i = 0;i < data.c.length;i++){
                            cityValue += '<option value=' + data.c[i] + '>' + data.c[i] +'</option>'
                        }
                        $('#city').html(cityValue);

                        var areaValue = '';
                        for(var i = 0;i < data.a.length;i++){
                            areaValue += '<option value=' + data.a[i] + '>' + data.a[i] +'</option>'
                        }
                        $('#area').html(areaValue);
                    }
                })
            });

            var city = $('#city');
            city.change(function(){
                var cityValue = $(this).val();
                $.ajax({
                    url : '/J2eeProject/changeServlet',
                    type : 'POST',
                    data : 'id=' + cityValue  + '&type=2',
                    dataType : 'json',
                    success: function(data){
                        var area = '';
                        for(var i = 0;i < data.length;i++){
                            area += '<option value=' + data[i] + '>' + data[i] +'</option>'
                        }
                        $('#area').html(area);
                    }

                })
            });
        })
    </script>
</head>
<body>
    省:<select id="province" name="province">
        <option value="江苏省">江苏省</option>
        <option value="浙江省">浙江省</option>
        <option value="安徽省">安徽省</option>
    </select>
    市:<select id="city" name="city">
        <option value="南京市">南京市</option>
        <option value="扬州市">扬州市</option>
        <option value="镇江市">镇江市</option>
    </select>
    区:<select id="area" name="area">
        <option value="00_1_1">鼓楼区</option>
        <option value="00_1_2">下关区</option>
        <option value="00_1_3">江北新区</option>
    </select>

</body>
</html>

Ajax

原文:https://www.cnblogs.com/claduxyz/p/12501003.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!