制作一个省份的三级联动菜单
linkage.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
<%@ 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>三级菜单联动</title> <script type= "text/javascript" > getProvince(); function getProvince(){ var xmlHttp; if (window.XMLHttpRequest){ xmlHttp= new XMLHttpRequest(); } else { xmlHttp= new ActiveXObject( "Microsoft.XMLHTTP" ) ; } document.getElementById( "province" ).length= 1 ; xmlHttp.open( "post" , "getProvince" ); xmlHttp.onreadystatechange=function(){ if (xmlHttp.readyState== 4 && xmlHttp.status== 200 ){ var data=eval( "(" +xmlHttp.responseText+ ")" ); alert(data.rows[ 0 ].areaName); for (var i= 0 ;i<data.rows.length;i++){ document.getElementById( "province" ).innerHTML+= "<option value='" +data.rows[i].areaCode+ "'>" +data.rows[i].areaName+ "</option>" ; } } } xmlHttp.send(); } function getCity() { } function getCounty() { } </script> </head> <body> <span>选择省:</span> <select id= "province" onchange= "getCity()" > <option value= "-1" >-请选择省份-</option> </select> <span>选择市:</span> <select id= "city" onchange= "getCounty()" > <option value= "-1" >-请选择城市-</option> </select> <span>选择区县:</span> <select id= "" > <option value= "-1" >-请选择区县-</option> </select> </body> </html> |
DbUtil.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
package com.oracle.util; import java.sql.Connection; import java.sql.DriverManager; public class DbUtil { private static String jdbcName= "com.mysql.jdbc.Driver" ; private static String url= "jdbc:mysql://127.0.0.1:3306/chinastates" ; private static String user= "root" ; private static String password= "zbsy201005" ; public Connection getConn() throws Exception{ Class.forName(jdbcName); Connection conn=DriverManager.getConnection(url, user, password); return conn; } public void close(Connection conn) throws Exception{ if (conn!= null ) { conn.close(); } } public static void main(String[] args) throws Exception{ DbUtil dbUtil= new DbUtil(); Connection conn=dbUtil.getConn(); if (conn!= null ){ System.out.println( "数据库连接成功!" ); } dbUtil.close(conn); } } |
ResponceUtil.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
package com.oracle.util; import java.io.PrintWriter; import javax.servlet.http.HttpServletResponse; import net.sf.json.JSONObject; public class ResponseUtil { public static void write(HttpServletResponse response,JSONObject jsonObject) throws Exception{ response.setContentType( "text/html;charset=utf-8" ); PrintWriter out=response.getWriter(); out.println(jsonObject.toString()); out.flush(); out.close(); } } |
Chinastates.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
package com.oracle.entity; public class Chinastates { private String areaCode; private String areaName; private String parentAreaCode; private Integer root; private Integer zone; private String navigateURL; public Chinastates() { super (); } public String getAreaCode() { return areaCode; } public void setAreaCode(String areaCode) { this .areaCode = areaCode; } public String getAreaName() { return areaName; } public void setAreaName(String areaName) { this .areaName = areaName; } public String getParentAreaCode() { return parentAreaCode; } public void setParentAreaCode(String parentAreaCode) { this .parentAreaCode = parentAreaCode; } public Integer getRoot() { return root; } public void setRoot(Integer root) { this .root = root; } public Integer getZone() { return zone; } public void setZone(Integer zone) { this .zone = zone; } public String getNavigateURL() { return navigateURL; } public void setNavigateURL(String navigateURL) { this .navigateURL = navigateURL; } } |
ChinastatesDao.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
package com.oracle.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import com.oracle.entity.Chinastates; public class ChinastatesDao{ public List<Chinastates> find(Connection conn) throws Exception { List<Chinastates> list= new ArrayList<Chinastates>(); String sql= "select AreaCode,AreaName from chinastates where ParentAreaCode=0001" ; PreparedStatement pst=conn.prepareStatement(sql); ResultSet rs=pst.executeQuery(); while (rs.next()) { Chinastates chinastates= new Chinastates(); chinastates.setAreaCode(rs.getString( "AreaCode" )); chinastates.setAreaName(rs.getString( "AreaName" )); list.add(chinastates); } return list; } } |
GetProvinceServlet.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
package com.oracle.controller; import java.io.IOException; import java.sql.Connection; 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.oracle.dao.ChinastatesDao; import com.oracle.entity.Chinastates; import com.oracle.util.DbUtil; import com.oracle.util.ResponseUtil; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class GetProvinceServlet extends HttpServlet { private static final long serialVersionUID = 1L; private DbUtil dbUtil= new DbUtil(); private ChinastatesDao chinastatesDao= new ChinastatesDao(); @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this .doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { Connection conn= null ; try { conn=dbUtil.getConn(); resp.setCharacterEncoding( "utf-8" ); List<Chinastates> list=chinastatesDao.find(conn); JSONArray jsonArray= new JSONArray(); for (Chinastates chinastates:list){ JSONObject jsonObject= new JSONObject(); jsonObject.put( "areaCode" ,chinastates.getAreaCode()); jsonObject.put( "areaName" ,chinastates.getAreaName()); jsonArray.add(jsonObject); } JSONObject result= new JSONObject(); result.put( "rows" ,jsonArray); //rows多行 ResponseUtil.write(resp, result); } catch (Exception e) { e.printStackTrace(); } finally { try { dbUtil.close(conn); } catch (Exception e) { e.printStackTrace(); } } } } |