JavaWeb(九)AJAX

Ajax

ajax:AJAX 是与服务器交换数据的艺术,它在不重载全部页面的情况下,实现了对部分网页的更新

AJAX:Asynchronous JavaScript and XML,异步 javascript和 XML,带来用户体验改变,是web优化一种主要手段

AJAX = DHTML (HTML、CSS、JavaScript ) + XMLHttpRequest 对象

传统web交互模型,浏览器直接将请求发送给服务器,服务器回送响应,直接发给浏览器, Ajax交互模型,浏览器首先将请求 发送 Ajax引擎(以XMLHttpRequest为核心),AJax引擎再将请求发送给 服务器,服务器回送响应先发给Ajax引擎,再由引擎传给浏览器显示

1、同步交互模式,客户端提交请求,等待,在响应回到客户端前,客户端无法进行其他操作

2、异步交互模型,客户端将请求提交给Ajax引擎,客户端可以继续操作,由Ajax引擎来完成与服务武器端通信,当响应回来后,Ajax引擎会更新客户页面,在客户端提交请求后,用户可以继续操作,而无需等待 。

Google : suggest建议、邮件定时保存、map地图

jQuery 与 AJAX

jQuery 提供多个与 AJAX 有关的方法。

通过 jQuery AJAX 方法,我们能够使用 HTTP Get 和 HTTP Post 从远程服务器上请求文本、HTML、XML 或 JSON - 同时您能够把这些外部数据直接载入网页的被选元素中。

四种Ajax

1.

$("").load("url地址",data参数,function(){回调函数,返回的时候执行});

load() 方法从服务器加载数据,并把返回的数据放入被选元素中。

必需: URL 参数:规定希望加载的 URL。

可选: data 参数:规定与请求一同发送的查询字符串键/值对集合。

可选: callback 参数:是 load() 方法完成后所执行的函数名称。

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8" />
 5         <title></title>
 6         <script src="js/jquery-3.2.1.min.js"></script>
 7         <style type="text/css">
 8             div{
 9                 width: 60px;
10                 height: 60px;
11                 background-color: aquamarine;
12                 margin: 2px;
13             }
14                 </style>
15         <script>
16             $(document).ready(function(){
17               $("#btn1").click(function(){
18                 $(‘#test‘).load(‘js/jquery-3.2.1.min.js‘);
19               })
20             })
21         </script>
22     </head>
23     <body>
24         <h3 id="test">请点击下面的按钮,通过 jQuery AJAX 改变这段文本。</h3>
25         <button id="btn1" type="button">获得外部的内容</button>
26     </body>
27 </html>

2.

$.get(...);
3.

$.post(...);

两种在客户端和服务器端进行请求-响应的常用方法是:GET 和 POST。

  • GET - 从指定的资源请求数据
  • POST - 向指定的资源提交要处理的数据

GET 基本上用于从服务器获得(取回)数据。注释:GET 方法可能返回缓存数据。

POST 也可用于从服务器获取数据。不过,POST 方法不会缓存数据,并且常用于连同请求一起发送数据。

4.

$.ajax({
url:"传给谁",
data:(参数),
type:"post/get",
dateType:"html/text/json",
success:function(data){
},
error:function(msg){
}
});

注册页面,以及失去焦点验证用户名是否存在

 1 <%@ page language="java" contentType="text/html; charset=utf-8"
 2     pageEncoding="utf-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 7 <script type="text/javascript" src="js/jquery-3.2.1.min.js"></script>
 8 <title>Insert title here</title>
 9 <script type="text/javascript">
10 $(function() {
11     $("#btn_log").click(function() {
12         $.ajax({
13             type:"post",
14             url:"ZhueServlet",
15             data:$("#formdata").serializeArray(),
16             dataType:"json",//返回的
17             success:function(data) {
18                 if(data.success) {
19                     window.location.href="denglu.jsp";
20                 } else {
21                     alert(data.msg);//打印相应的错误信息
22                 }
23             },
24             error:function(msg) {
25                 cosole.log(msg);
26             }
27         });
28     });
29
30     // 失去焦点验证用户名是否存在
31     $("#username").blur(function() {
32         var u_val = $("#username").val();
33
34         $.ajax({
35             type:"post",
36             url:"CheckUsername",
37             data:{username:u_val},
38             dataType:"text",
39             success:function(data) {
40                 if("no" == data) {
41                     $("#msg").html("用户名已经存在");
42                 } else if("ok"==data) {
43                     $("#msg").html("该用户名可以使用 !");
44                 }
45             },
46             error:function(msg) {
47                 cosole.log(msg);//在控制台打印错误信息48             }
49         });
50     });
51 });
52 </script>
53 </head>
54 <body>
55
56     <form id="formdata">
57         用户名:<input id="username" type="text" name="username"><span id="msg"></span><br>
58         密码:<input type="password" name="password"><br>
59         确认密码:<input type="password" name="password1"><br>
60         真实姓名:<input type="text" name="realname"><br>
61         <a  id="btn_log" href="#">提交</a>><br>
62     </form>
63 </body>
64 </html>
 1 //注册逻辑
 2 package com.servlet;
 3
 4 import java.io.IOException;
 5 import javax.servlet.ServletException;
 6 import javax.servlet.annotation.WebServlet;
 7 import javax.servlet.http.HttpServlet;
 8 import javax.servlet.http.HttpServletRequest;
 9 import javax.servlet.http.HttpServletResponse;
10 import com.util.MethodDal;
11 import com.util.User;
12
13 /**
14  * Servlet implementation class ZhueServlet
15  */
16 @WebServlet("/ZhueServlet")
17 public class ZhueServlet extends HttpServlet {
18
19     private static final long serialVersionUID = 1L;
20
21     /**
22      * @see HttpServlet#HttpServlet()
23      */
24     public ZhueServlet() {
25         super();
26         // TODO Auto-generated constructor stub
27     }
28
29     /**
30      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
31      */
32     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
33         //首先设置可以处理中文
34         request.setCharacterEncoding("utf-8");
35         response.setCharacterEncoding("utf-8");
36         response.setContentType("text/html; charset=utf-8");
37         //获取传入的数据
38         String username=request.getParameter("username");
39         String password=request.getParameter("password");
40         String password1=request.getParameter("password1");
41         String realname=request.getParameter("realname");
42
43         System.out.println("a:"+username+password);
44         //调用方法判断传入的参数有没有空,都不为空才可以执行下去
45         if(checkParam(username,password,password1)){
46             if(password.equals(password1)){
47                 MethodDal m=new MethodDal();
48                 if(m.selectName(username).equals("no")){//调用方法根据用户名查询,如果返回no说明数据库没有此用户名,可以注册
49                     User user=new User();//实例化用户类并添加信息
50                     user.setUsername(username);
51                     user.setPassword(password);
52                     m.insertData(user);//将实例化的用户传到添加用户的方法
53                     response.getWriter().append("{\"success\":true}");//返回键值对,做相关判断,输出相关信息
54                 }else{
55                     response.getWriter().append("{\"success\":false, \"msg\":\"1请正确输入\"}");
56                 }
57             }else{
58                 response.getWriter().append("{\"msg\":\"2请正确输入\"}");
59             }
60         }else{
61             response.getWriter().append("{\"msg\":\"3请正确输入\"}");
62         }
63     }
64
65     /**
66      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
67      */
68     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
69         // TODO Auto-generated method stub
70         doGet(request, response);
71     }
72     //判断传入的参数有没有空的方法,只要有空的就返回false
73     public boolean checkParam(String... args){//这样传参数代表参数个数不确定,传几个都可以
74         for(String s : args){
75             if("".equals(s)||s==null){
76                 return false;
77             }
78         }
79         return true;
80     }
81 }

案例:省市区三级联动

准备util工具包,数据库链接设置,数据库操作工具类

 1 package com.util;
 2 //数据库设置
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.ResultSet;
 6 import java.sql.SQLException;
 7 import java.sql.Statement;
 8
 9 /**
10  * 数据库驱动连接类
11  * @author ZBK
12  */
13 public class DBHelper {
14     /**
15      * 数据库用户名
16      */
17     public static final String USERNAME = "test";
18     /**
19      * 数据库密码
20      */
21     public static final String PASSWORD = "test";
22     /**
23      * 数据库驱动类
24      */
25     public static final String DRIVER = "oracle.jdbc.OracleDriver";
26     /**
27      * 数据库地址URL
28      */
29     public static final String URL = "jdbc:oracle:thin:@localhost:1521:xe";
30
31     /**
32      * 获取数据库连接
33      * @return
34      */
35     public static Connection getConnection() {
36         Connection conn = null;
37         try {
38             Class.forName(DRIVER);
39             conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
40         } catch (ClassNotFoundException e) {
41             e.printStackTrace();
42         } catch (SQLException e) {
43             e.printStackTrace();
44         }
45         return conn;
46     }
47
48     /**
49      * 释放资源
50      * @param conn 数据库连接对象
51      * @param sm Statement对象
52      * @param rs ResultSet结果集对象
53      */
54     public static void destroy(Connection conn, Statement sm, ResultSet rs) {
55         if (conn != null) {
56             try {
57                 conn.close();
58             } catch (SQLException e) {
59                 e.printStackTrace();
60             }
61             conn = null;
62         }
63         if (sm != null) {
64             try {
65                 sm.close();
66             } catch (SQLException e) {
67                 e.printStackTrace();
68             }
69             sm = null;
70         }
71         if (rs != null) {
72             try {
73                 rs.close();
74             } catch (SQLException e) {
75                 e.printStackTrace();
76             }
77             rs = null;
78         }
79     }
80
81     /**
82      * 验证前台传入的参数是否为空
83      * @param args
84      * @return
85      */
86     public static boolean checkParam(String... args) {
87         for (String s : args) {
88             if (s == null || s.trim().length() < 1) {
89                 return false;
90             }
91         }
92         return true;
93     }
94 }
  1 package com.util;
  2
  3 import java.sql.Connection;
  4 import java.sql.PreparedStatement;
  5 import java.sql.ResultSet;
  6 import java.sql.SQLException;
  7 import java.util.ArrayList;
  8 import java.util.List;
  9
 10 import com.model.Area;
 11 import com.model.City;
 12 import com.model.Province;
 13
 14 public class DataBaseUtil {
 15     private Connection conn;
 16     private PreparedStatement ps;
 17     private ResultSet rs;
 18
 19     /**
 20      * 初始化数据库链接
 21      */
 22     public void init(String sql) {
 23         conn = DBHelper.getConnection();
 24         try {
 25             ps = conn.prepareStatement(sql);
 26         } catch (SQLException e) {
 27             e.printStackTrace();
 28         }
 29     }
 30
 31     /**
 32      * 查询所有省信息
 33      *
 34      */
 35     public List<Province> SelectAllPro() {
 36         String sql = "select * from C_PROVINCES t";
 37         init(sql);
 38         List<Province> plist = null;
 39         try {
 40             rs = ps.executeQuery();
 41             if(rs != null) {
 42                 plist = new ArrayList<Province>();
 43                 while(rs.next()) {
 44                     Province p = new Province();
 45                     p.setId(rs.getInt("id"));
 46                     p.setProvince(rs.getString("province"));
 47                     p.setProvinceid(rs.getString("provinceid"));
 48                     plist.add(p);
 49                 }
 50             }
 51         } catch (SQLException e) {
 52             e.printStackTrace();
 53         }
 54
 55         return plist;
 56     }
 57
 58     public List<City> SelectCity(String provinceid) {
 59         String sql = "select * from C_CITIES t where t.provinceid=?";
 60         init(sql);
 61         List<City> clist = null;
 62         try {
 63             ps.setString(1, provinceid);
 64             rs = ps.executeQuery();
 65             if(rs!=null) {
 66                 clist = new ArrayList<City>();
 67                 while(rs.next()) {
 68                     City city = new City();
 69                     city.setId(rs.getInt("id"));
 70                     city.setCity(rs.getString("city"));
 71                     city.setCityid(rs.getString("cityid"));
 72                     city.setProvinceid(rs.getString("provinceid"));
 73                     clist.add(city);
 74                 }
 75             }
 76         } catch (SQLException e) {
 77             e.printStackTrace();
 78         }
 79
 80         return clist;
 81     }
 82
 83     public List<Area> SelectArea(String cityid) {
 84         String sql = "select * from C_AREAS t where t.cityid=?";
 85         init(sql);
 86         List<Area> alist = null;
 87         try {
 88             ps.setString(1, cityid);
 89             rs = ps.executeQuery();
 90             if(rs!=null) {
 91                 alist = new ArrayList<Area>();
 92                 while(rs.next()) {
 93                     Area a = new Area();
 94                     a.setId(rs.getInt("id"));
 95                     a.setArea(rs.getString("area"));
 96                     a.setAreaid(rs.getString("areaid"));
 97                     a.setCityid(rs.getString("cityid"));
 98                     alist.add(a);
 99                 }
100             }
101         } catch (SQLException e) {
102             e.printStackTrace();
103         }
104
105         return alist;
106     }
107 }

准备model包,包含省市区三个类

 1 package com.model;
 2
 3 public class Province {
 4     private int id;
 5     private String provinceid;
 6     private String province;
 7
 8     public int getId() {
 9         return id;
10     }
11
12     public void setId(int id) {
13         this.id = id;
14     }
15
16     public String getProvinceid() {
17         return provinceid;
18     }
19
20     public void setProvinceid(String provinceid) {
21         this.provinceid = provinceid;
22     }
23
24     public String getProvince() {
25         return province;
26     }
27
28     public void setProvince(String province) {
29         this.province = province;
30     }
31
32     @Override
33     public String toString() {
34         return "Province [id=" + id + ", provinceid=" + provinceid + ", province=" + province + "]";
35     }
36
37 }
 1 package com.model;
 2
 3 public class City {
 4     private int id;
 5     private String cityid;
 6     private String city;
 7     private String provinceid;
 8
 9     public int getId() {
10         return id;
11     }
12
13     public void setId(int id) {
14         this.id = id;
15     }
16
17     public String getCityid() {
18         return cityid;
19     }
20
21     public void setCityid(String cityid) {
22         this.cityid = cityid;
23     }
24
25     public String getCity() {
26         return city;
27     }
28
29     public void setCity(String city) {
30         this.city = city;
31     }
32
33     public String getProvinceid() {
34         return provinceid;
35     }
36
37     public void setProvinceid(String provinceid) {
38         this.provinceid = provinceid;
39     }
40
41     @Override
42     public String toString() {
43         return "City [id=" + id + ", cityid=" + cityid + ", city=" + city + ", provinceid=" + provinceid + "]";
44     }
45
46 }
 1 package com.model;
 2
 3 public class Area {
 4     private int id;
 5     private String areaid;
 6     private String area;
 7     private String cityid;
 8     public int getId() {
 9         return id;
10     }
11     public void setId(int id) {
12         this.id = id;
13     }
14     public String getAreaid() {
15         return areaid;
16     }
17     public void setAreaid(String areaid) {
18         this.areaid = areaid;
19     }
20     public String getArea() {
21         return area;
22     }
23     public void setArea(String area) {
24         this.area = area;
25     }
26     public String getCityid() {
27         return cityid;
28     }
29     public void setCityid(String cityid) {
30         this.cityid = cityid;
31     }
32     @Override
33     public String toString() {
34         return "Area [id=" + id + ", areaid=" + areaid + ", area=" + area + ", cityid=" + cityid + "]";
35     }
36 }

准备处理逻辑,三个Servlet

 1 package com.servlet;
 2
 3 import java.io.IOException;
 4 import java.util.List;
 5
 6 import javax.servlet.ServletException;
 7 import javax.servlet.annotation.WebServlet;
 8 import javax.servlet.http.HttpServlet;
 9 import javax.servlet.http.HttpServletRequest;
10 import javax.servlet.http.HttpServletResponse;
11
12 import com.model.Province;
13 import com.util.DataBaseUtil;
14
15 /**
16  * Servlet implementation class SelectAllProServlet
17  */
18 @WebServlet("/SelectAllProServlet")
19 public class SelectAllProServlet extends HttpServlet {
20     private static final long serialVersionUID = 1L;
21
22     /**
23      * @see HttpServlet#HttpServlet()
24      */
25     public SelectAllProServlet() {
26         super();
27         // TODO Auto-generated constructor stub
28     }
29
30     /**
31      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
32      */
33     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
34         response.setCharacterEncoding("utf-8");
35         //初始化数据库操作类
36         DataBaseUtil db = new DataBaseUtil();
37
38         List<Province> plist = db.SelectAllPro();
39
40         String json = "{\"success\":";
41
42         if (plist != null) {
43             json += "true,\"result\":";//result是一个键,他得值是后面的数组,这个数组包含了一串键值对
44             json += "[";
45             for (int i = 0; i < plist.size(); i++) {
46                 json += "{\"id\":\"" + plist.get(i).getId() + "\",\"province\":\"" + plist.get(i).getProvince()
47                         + "\",\"provinceid\":\"" + plist.get(i).getProvinceid() + "\"}";
48                 if (i != plist.size() - 1) {
49                     json += ",";
50                 }
51             }
52             json += "]}";
53         } else {
54             json += "false}";
55         }
56         response.getWriter().append(json);
57     }
58
59     /**
60      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
61      */
62     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
63         // TODO Auto-generated method stub
64         doGet(request, response);
65     }
66
67 }
 1 package com.servlet;
 2
 3 import java.io.IOException;
 4 import java.util.List;
 5
 6 import javax.servlet.ServletException;
 7 import javax.servlet.annotation.WebServlet;
 8 import javax.servlet.http.HttpServlet;
 9 import javax.servlet.http.HttpServletRequest;
10 import javax.servlet.http.HttpServletResponse;
11
12 import com.alibaba.fastjson.JSONObject;
13 import com.model.City;
14 import com.util.DataBaseUtil;
15
16 /**
17  * Servlet implementation class SelectCityServlet
18  */
19 @WebServlet("/SelectCityServlet")
20 public class SelectCityServlet extends HttpServlet {
21     private static final long serialVersionUID = 1L;
22
23     /**
24      * @see HttpServlet#HttpServlet()
25      */
26     public SelectCityServlet() {
27         super();
28         // TODO Auto-generated constructor stub
29     }
30
31     /**
32      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
33      */
34     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
35         response.setCharacterEncoding("utf-8");
36
37         String provinceid = request.getParameter("provinceid");
38
39         DataBaseUtil db = new DataBaseUtil();
40
41         List<City> clist = db.SelectCity(provinceid);
42         /*
43          * 拼接字符串传回json
44          * System.out.println(provinceid);
45         String json = "{\"success\":";
46
47         if (clist != null) {
48             json += "true,\"result\":";
49             json += "[";
50             for (int i = 0; i < clist.size(); i++) {
51                 json += "{\"id\":\"" + clist.get(i).getId() + "\",\"city\":\"" + clist.get(i).getCity()
52                         + "\",\"cityid\":\"" + clist.get(i).getCityid() + "\"}";
53                 if (i != clist.size() - 1) {
54                     json += ",";
55                 }
56             }
57             json += "]}";
58         } else {
59             json += "false}";
60         }
61
62         response.getWriter().append(json);*/
63         //导包调用方法,传回json
64         JSONObject jo = new JSONObject();
65
66         if(clist!=null) {
67             jo.put("success", true);
68             jo.put("result", clist);
69         } else {
70             jo.put("success", false);
71         }
72         response.getWriter().append(jo.toJSONString());
73     }
74
75     /**
76      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
77      */
78     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
79         // TODO Auto-generated method stub
80         doGet(request, response);
81     }
82
83 }
 1 package com.servlet;
 2
 3 import java.io.IOException;
 4 import java.util.List;
 5
 6 import javax.servlet.ServletException;
 7 import javax.servlet.annotation.WebServlet;
 8 import javax.servlet.http.HttpServlet;
 9 import javax.servlet.http.HttpServletRequest;
10 import javax.servlet.http.HttpServletResponse;
11
12 import com.alibaba.fastjson.JSONObject;
13 import com.model.Area;
14 import com.model.City;
15 import com.util.DataBaseUtil;
16
17 /**
18  * Servlet implementation class SelectareaServlet
19  */
20 @WebServlet("/SelectareaServlet")
21 public class SelectareaServlet extends HttpServlet {
22     private static final long serialVersionUID = 1L;
23
24     /**
25      * @see HttpServlet#HttpServlet()
26      */
27     public SelectareaServlet() {
28         super();
29         // TODO Auto-generated constructor stub
30     }
31
32     /**
33      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
34      */
35     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
36         response.setCharacterEncoding("utf-8");
37
38         String cityid = request.getParameter("cityid");
39
40         DataBaseUtil db = new DataBaseUtil();
41
42         List<Area> alist = db.SelectArea(cityid);
43         JSONObject jo = new JSONObject();
44
45         if(alist!=null) {
46             jo.put("success", true);
47             jo.put("result", alist);
48         } else {
49             jo.put("success", false);
50         }
51         response.getWriter().append(jo.toJSONString());
52
53     }
54
55     /**
56      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
57      */
58     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
59         // TODO Auto-generated method stub
60         doGet(request, response);
61     }
62
63 }

准备页面和ajax

 1 <%@ page language="java" contentType="text/html; charset=utf-8"
 2     pageEncoding="utf-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 7 <script type="text/javascript" src="js/jquery-3.2.1.min.js"></script>
 8 <script type="text/javascript" src="js/index.js"></script>
 9 <title>Insert title here</title>
10 <style type="text/css">
11     #pdiv{
12         margin:30px auto;
13         width:600px;
14         height:auto;
15         border:1px black solid;
16     }
17 </style>
18 </head>
19 <body>
20 <div id="pdiv">
21     <select id="province"></select>
22     <select id="city"></select>
23     <select id="area"></select>
24 </div>
25 </body>
26 </html>
 1 $(function() {
 2     //访问页面显示省的信息
 3     $.ajax({
 4         type:"post",
 5         url:"SelectAllProServlet",
 6         //data此处不需要
 7         dataType:"json",
 8         success : function(data) {
 9             if (data.success) {
10                 $("#province").append("<option vlaue=‘-1‘>==请选择==</option>");//初始化下拉框
11                 $("#city").append("<option vlaue=‘-1‘>==请选择==</option>");//初始化下拉框
12                 $("#area").append("<option vlaue=‘-1‘>==请选择==</option>");//初始化下拉框
13                 for (var i = 0; i < data.result.length; i++) {
14                     $("#province").append(
15                             "<option value=‘" + data.result[i].provinceid
16                                     + "‘>" + data.result[i].province
17                                     + "</option>");
18                 }
19
20             } else {
21                 alert("后台没有取出数据 !");
22             }
23         },
24         error : function(msg) {
25             console.log(msg);
26         }
27     });
28
29
30 // 加载市级
31 $("#province").change(
32         function() {
33             $("#area").empty();//清空,否则会导致多次查询的堆积起来
34             $("#area")
35                     .append("<option value=‘-1‘>请选择</option>");
36             var provinceid = $(this).val();
37             $.ajax({
38                 type : "post",
39                 url : "SelectCityServlet",
40                 data : {
41                     provinceid : provinceid//传出的参数类型是provinceid,值是provinceid
42                 },
43                 dataType : "json",
44                 success : function(data) {
45                     if (data.success) {
46                         $("#city").empty();
47                         $("#city")
48                                 .append("<option value=‘-1‘>请选择</option>");
49                         for (var i = 0; i < data.result.length; i++) {
50                             $("#city").append(
51                                     "<option value=‘"
52                                             + data.result[i].cityid + "‘>"
53                                             + data.result[i].city
54                                             + "</option>");
55                         }
56                     } else {
57                         alert("后台没有取出数据 !");
58                     }
59                 },
60                 error : function(msg) {
61                     console.log(msg);
62                 }
63             });
64         });
65
66
67 // 加载区
68 $("#city").change(
69         function() {
70             var cityid = $(this).val();
71             $.ajax({
72                 type : "post",
73                 url : "SelectareaServlet",
74                 data : {
75                     cityid : cityid
76                 },
77                 dataType : "json",
78                 success : function(data) {
79                     if (data.success) {
80                         $("#area").empty();//清空,否则会导致多次查询的堆积起来
81                         $("#area")
82                                 .append("<option value=‘-1‘>请选择</option>");
83                         for (var i = 0; i < data.result.length; i++) {
84                             $("#area").append(
85                                     "<option value=‘"
86                                             + data.result[i].areaid + "‘>"
87                                             + data.result[i].area
88                                             + "</option>");
89                         }
90                     } else {
91                         alert("后台没有取出数据 !");
92                     }
93                 },
94                 error : function(msg) {
95                     console.log(msg);
96                 }
97             });
98         });
99 });
时间: 2024-11-03 22:34:26

JavaWeb(九)AJAX的相关文章

javaweb 之Ajax

AJAX what: 一种改善客户端体验的技术.本质上就是在客户端使用js代码,通过浏览器中一个特殊的对象(XMLHttpRequest)异步(浏览器不会销毁当前的页面,客户可以在页面继续其他的操作而不被打断)的向服务器端发送请求,服务器端返回的是部分数据(可以是文本,xml,json),客户端接收到数据后,使用js将数据更新到页面中.整个过程没有页面的整体刷新,只是使用js进行局部刷新,用户操作不会被打断. AJAX编程的主要步骤: 创建XMLHttpRequest对象 编写回调事件处理函数

[转]深入ASP.NET MVC之九:Ajax支持

本文转自:http://www.cnblogs.com/yinzixin/archive/2012/12/22/2824384.html 目前前端页面和服务端进行Ajax交互大多采用的都是jQuery, ASP.NET MVC提供了一些方法使得这个过程变得更加容易.常见的Ajax应用场景有两种,一个是点击一个链接,然后局部加载一些内容,可以是html片段,也可能是json数据,然后通过前端js处理之后显示:另一个是异步提交表单.这些帮助方法都是位于AjaxExtensions种的扩展方法.先看第

JavaWeb之Ajax快速入门(十九)

AJAX 1. AJAX简介 1. AJax是什么 允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做AJax,AJax不是新的编程语言是多种技术的结合形成一门新技术 AJAX = DHTML (HTML.CSS.JavaScript ) + XMLHttpRequest对象 2. AJax的特点 不适用于任何应用场景 导致逻辑处理混乱 Ajax是实现B\S模式下的异步交互 在实现同样的功能时,Ajax的性能更好 3. AJax的优点 1). 传统web交互模型,浏览器直接将请求发送给服务器

javaweb利用ajax使登录窗口不跳转页面实现对账号密码的判断

和上一篇判断用户名是否被占用不跳转页面类似!利用ajax实现跳转,要导入jquery文件库!具体代码我会贴出来,注释在里面!!可以观摩一手!(代码我也留下链接,如果失效,评论补发,代码可能导入也无法使用!!你们要自己配置一下路径,或者自己建文件复制粘贴吧!) login.jsp <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <%@ pa

IT兄弟连 JavaWeb教程 AJAX中参数传递问题

使用Ajax发送GET请求并需要传递参数时,直接在URL地址后拼接参数,格式如下: xhr.open('get','请求路径?参数名1=参数值1&参数名2=参数值2...',true); 使用Ajax发送POSt请求并需要传递参数时,也可以直接在URL地址后拼接参数,这样的话和发送GET请求时没有区别,也可以在send方法中进行参数的传递,而且建议使用send方法进行参数传递,并且需要对请求头做特殊设置,设置Content-Type为URL编码方式,格式如下: xhr.setRequestHea

IT兄弟连 JavaWeb教程 AJAX常见问题

1 中文乱码问题 ● POST提交乱码 乱码原因:所有浏览器对Ajax请求参数都使用UTF-8进行编码,而服务器默认使用ISO-8859-1去解码,所以产生乱码. 解决方法:在服务器接收请求参数前设置解析编码. request.setCharacterEncoding("UTF-8"); ● GET提交乱码 乱码原因:IE浏览器发送请求时,会默认使用GBK字符集对请求参数进行编码,而其他浏览器会使用UTF-8.服务器默认情况下使用的时ISO-8859-1进行解码,所以产生乱码. 解决方

【JavaWeb】Ajax基础

Ajax介绍 Asynchronous JavaScript And XML(异步的JavaScript和XML): Ajax可以在不刷新页面的前提下,进行页面局部更新: Ajax不是新的技术,Ajax并不是W3C的标准: Ajax的使用流程 创建XmlHttpRequest对象 发送Ajax请求 处理服务器响应 处理服务器响应 xmlhttp.onreadystatechange()事件用于监听AJAX的执行过程 xmlhttp.readyState属性说明XMLHttpRequest当前状态

JSP+Ajax站点开发小知识

一.JSP基础 1.<select  name="love"  size="3">当中的size属性指定了列表框显示选项的条数.假设全部选项多于这个数.将会出现滚动栏. 2.addCookie(Cookie  cookie)方法将其放入client,获取Cookie对象可调用request对象的Cookie[]  getcookies()方法. Cookie   myCookie  =  new  Cookie("name",  &q

JSP+Ajax网站开发小知识

一.JSP基础 1.<select  name="love"  size="3">其中的size属性指定了列表框显示选项的条数,如果所有选项多于这个数,将会出现滚动条. 2.addCookie(Cookie  cookie)方法将其放入客户端,获取Cookie对象可调用request对象的Cookie[]  getcookies()方法. Cookie   myCookie  =  new  Cookie("name",  "