制作一个省份的三级联动菜单

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();
            }
        }  
}
}
posted @ 2019-04-13 16:04  G大调  阅读(315)  评论(0编辑  收藏  举报