三级联动菜单
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(); } } } }
工程目录结构
oraclepeixun