zoukankan      html  css  js  c++  java
  • Ajax

    1.原生态的AJAX

    ajax入门程序:
        步骤:
            1.创建一个核心对象 XMLHttpRequest
            2.编写一个回调函数
            3.编写请求方式和请求的路径(open操作)
            4.发送请求(send操作)

    <body>
        <input type="button" value="点我" onclick="btnClick()">
    </body>
    <script type="text/javascript">
        function btnClick(){
            //核心对象
            xmlhttp=null;
            if (window.XMLHttpRequest)
              {// code for IE7, Firefox, Opera, etc.
              xmlhttp=new XMLHttpRequest();
              }
            else if (window.ActiveXObject)
              {// code for IE6, IE5
              xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
              }
    
            //编写回调函数
            xmlhttp.onreadystatechange=function(){
                if(xmlhttp.readyState==4 && xmlhttp.status==200){
                    alert(xmlhttp.responseText);
                }
            }
            
            //open
            xmlhttp.open("get","/day15/ajax2?username=张三");
            
            //send
            xmlhttp.send();
        }
    </script>

    四种jquery:
        了解:jquery对象.load(url,params,function(数据){});
        ★: $.get(url,params,function(数据){},type);
            发送get请求的ajax
                url:请求的路径
                params:请求的参数 参数为keyvalue的形式 key=value  {"":"","":""}
                fn:回调函数 参数就是服务器发送回来的数据
                type:返回内容格式,xml, html, script, json, text, _default。    以后用"json"
     
        ★: $.post(url,params,function(数据){},type);
            发送post请求的ajax
            
            若结果为json格式,  打印返回值的时候是一个对象
                例如若json为 {"result":"success","msg":"成功"}
                获取msg 只需要    参数.msg
        理解:
            $.ajax([选项]);
                选项的可选值:
                    url:请求路径
                    type:请求方法
                    data:发送到服务器的数据
                    success:fn 成功以后的回调
                    error:fn 异常之后的回调
                    dataType:返回内容格式 经常使用json
                    async:设置是否是异步请求

    $(function(){
            $("#btn").click(function(){
                var url="/day15/jqueryAjax";
                //var params="username=张三";
                var params={"username":"张苏纳"};
                //load方式   前一种是get 后一种是post
                /* $(this).load(url,params,function(d){
                    alert(d);
                }); */
                
                //get方式
                /* $.get(url,params,function(d){
                    alert(d)
                }); */
                
                //post方式
                /* $.post(url,params,function(d){
                    alert(d.msg);
                },"json"); */
                
                //ajax 方式
                $.ajax({
                    url:url,
                    type:"post",
                    data:params,
                    success:function(d){
                        alert(d.msg);
                    },
                    error:function(){},
                    dataType:"json"
                    
                });
            });        
        })
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            System.out.println("请求方式:"+request.getMethod());
            
            //接受参数
            String username = request.getParameter("username");
            username=new String(username.getBytes("iso-8859-1"),"utf-8");
            System.out.println(username);
            
            //响应数据
            response.getWriter().print("success");
        }
    $(function(){
            //给username派发一个失去焦点事件 发送ajax请求
            $("input[name='username']").blur(function(){
                //获取输入的值
                var $value=$(this).val();
                //alert($value);
                
                $.get("/day15/checkUsername4Ajax","username="+$value,function(d){
                    //alert(d);
                    if(d==1){
                        $("#usename_msg").html("<font color='green'>用户名可以使用</font>");
                    }else{
                        $("#usename_msg").html("<font color='red'>用户名已被使用</font>");
                    }
                });
            });
        })

     省市联动案列

    <%@ 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">
    <script type="text/javascript"
        src="${pageContext.request.contextPath }/js/jquery-1.11.3.min.js"></script>
    <script type="text/javascript">
        $(function(){
            //页面加载成功 查询所有的省
            $.get("/day15/selectPro",function(d){
                //alert(d)
                var $pro=$("#proId");
                $(d).each(function(){
                    $pro.append($("<option value="+this.provinceid+">"+this.name+"</option>"));
                });
            },"json");
            
            
            //给省份下拉选派发change事件
            $("#proId").change(function(){
                //获取省份id
                var $pid=$(this).val();
                //alert($pid);
                //发送ajax请求 查询所有的市
                $.get("/day15/selectCity",{"pid":$pid},function(obj){
                    //alert(obj);
                    var $city=$("#cityId");
                    $city.html("<option>-请选择-</option>");
                    if(obj!=null){
                        $(obj).each(function(){
                            $city.append($("<option value='"+this.cityid+"'>"+this.name+"</option>"));
                        });
                    }
                },"json");
            });
        })
    </script>
    <title>省市联动</title>
    </head>
    <body>
        <select id="proId" name="province">
            <option>-省份-</option>
            <!-- 
            <option value="1">北京</option>
             -->
        </select>
        <select id="cityId" name="city">
            <option>-请选择-</option>
        </select>
    </body>
    </html>
    public class SelectProServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //1.调用service 查询所有的省份
            List<Province> list=null;
            try {
                list = new ProvinceService().findAll();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            //2.将所有的省份写回去
            response.setContentType("text/html;charset=utf-8");
            if(list!=null && list.size()>0){
                response.getWriter().println(JSONArray.fromObject(list));
            }
        }
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
        }
    
    }
    public class ProvinceService {
    
        public List<Province> findAll() throws SQLException {
            
            return new ProvinceDao().findAll();
        }
    
    }
    public class ProvinceDao {
    
        public List<Province> findAll() throws SQLException {
            QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource());
            String sql="select * from province";
                return qr.query(sql, new BeanListHandler<>(Province.class));
        }
    
    }
    public class SelectCityServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //0.设置编码
            request.setCharacterEncoding("utf-8");
            response.setContentType("text/html;charset=utf-8");
            
            //1.获取省份id
            String pid=request.getParameter("pid");
            
            //2.调用service 查询所有的市 返回 list
            List<City> list=null;
            try {
                list = new CityService().findCitiesByPid(pid);
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            //3.将list转换成json 返回页面
            if(list!=null && list.size()>0){
                response.getWriter().println(JSONArray.fromObject(list));
            }
        }
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
        }
    
    }
    public class CityService {
    
        /**
         * 通过省份id 查询所有的市
         * @param pid
         * @return
         * @throws SQLException 
         */
        public List<City> findCitiesByPid(String pid) throws SQLException {
            return new CityDao().findCitiesByPid(pid);
        }
    
    }
    public class CityDao {
    
        public List<City> findCitiesByPid(String pid) throws SQLException {
            QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource());
            String sql="select * from city where provinceid = ?";
            
            return qr.query(sql, new BeanListHandler<>(City.class),pid);
        }
    
    }

  • 相关阅读:
    java继承中的初始化顺序
    java可访问修饰符
    java简单数据类型转化
    java运算符优先级
    面向切面编程的例子
    什么是面向切面编程
    return 的使用
    通过修改my.ini配置文件来解决MySQL 5.6 内存占用过高的问题
    spring 注入使用注解(不用xml)
    spring在扫描包中的注解类时出现Failed to read candidate component错误
  • 原文地址:https://www.cnblogs.com/hudj/p/7421564.html
Copyright © 2011-2022 走看看