三级联动菜单

linkage.jsp

<%@ 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

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

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

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

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

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();
			}
		}	
}
}

  工程目录结构

原文地址:https://www.cnblogs.com/dldrjyy13102/p/8037558.html