1.创建maven项目,模块化创建imp Servlet Service Dao vo,创建相应文件
运行原理:
浏览器 -----> servlet ----->service-----> dao-----> DBLink-----> 数据库----->DBLink ----->dao -----> service-----> servlet -----> 浏览器
2.引入 JDBC文件, jquery-1.8.3.min.js 和json2.js文件
(json2.js可以解决低版本浏览器不兼容JSON对象的问题)
3. 在pom.xml中配置 servlet log4j gson mysql 的依赖包
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html >
<html>
<head>
<title>选项</title>
<script type="text/javascript" src="./js/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="./js/json2.js"></script>
<script>
$(function(){
var obj={
url:"./TestServlet",
type:"get",
dataType:"text",
success:function(data){
var options="<option value=''>--请选择省份--</option>";
data=JSON.parse(data);
for (var i = 0; i < data.length; i++) {
var shuju=data[i];
options=options+"<option value='"+shuju.code+"'>"+shuju.name+"</option>"
}
$("#provinces").empty();
$("#provinces").append(options);
}
};
$.ajax(obj);
});
function changeCity(){
var parentCode=$("#provinces").val();
if(parentCode==""){
$("#city").empty();
$("#city").append("<option value=''>--请选择市--</option>");
$("#county").empty();
$("#county").append("<option value=''>--请选择县区--</option>");
return;
}
var obj={
url:"./TestServlet?parentCode="+parentCode,
type:"get",
dataType:"text",
success:function(data){
var options="<option value=''>--请选择市--</option>";
data=JSON.parse(data);
for (var i = 0; i < data.length; i++) {
var city=data[i];
options=options+"<option value='"+city.code+"'>"+city.name+"</option>"
}
$("#city").empty();
$("#city").append(options);
$("#county").empty();
$("#county").append("<option value=''>--请选择县区--</option>");
}
};
$.ajax(obj);
};
function changeCounty(){
var parentCode=$("#city").val();
if(parentCode==""){
$("#county").empty();
$("#county").append("<option value=''>--请选择县区--</option>");
return;
}
var obj={
url:"./TestServlet?parentCode="+parentCode,
type:"get",
dataType:"text",
success:function(data){
var options="<option value=''>--请选择县区--</option>";
data=JSON.parse(data);
for (var i = 0; i < data.length; i++) {
var city=data[i];
options=options+"<option value='"+city.code+"'>"+city.name+"</option>"
}
$("#county").empty();
$("#county").append(options);
}
};
$.ajax(obj);
};
</script>
</head>
<body >
<select id="provinces" onchange="changeCity()">
<option value="">--请选择省份--</option>
</select>
<select id="city" onchange="changeCounty()">
<option value="">--请选择市--</option>
</select>
<select id="county">
<option value="">--请选择县区--</option>
</select>
</body>
</html>
TestServlet
package com.jd.Area.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.gson.Gson;
import com.jd.Area.imp.IAreaService;
import com.jd.Area.service.AreaService;
public class TestServlet extends HttpServlet {
private IAreaService areaService=new AreaService();
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
String parentCode=request.getParameter("parentCode");
response.setContentType("text/plain;charset=utf-8");
String json =new Gson().toJson(areaService.select(parentCode));
PrintWriter out = response.getWriter();
out.print(json);
out.flush();
out.close();
}
}
IAreaService.java
package com.jd.Area.imp;
import java.util.List;
import com.jd.Area.Area;
public interface IAreaService {
List<Area> select(String parentCode);
}
AreaService .java
package com.jd.Area.service;
import java.util.List;
import com.jd.Area.Area;
import com.jd.Area.Dao.AreaDao;
import com.jd.Area.imp.IAreaDao;
import com.jd.Area.imp.IAreaService;
public class AreaService implements IAreaService {
private IAreaDao areaDao=new AreaDao();
public List<Area> select(String parentCode) {
if(parentCode==null) {
parentCode="";
}
return areaDao.select(parentCode);
}
}
IAreaDao .java
package com.jd.Area.imp;
import java.util.List;
import com.jd.Area.Area;
public interface IAreaDao {
List<Area> select(String parentCode);
}
AreaDao .java
package com.jd.Area.Dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.jd.Area.Area;
import com.jd.Area.imp.IAreaDao;
import com.jd.tool.db.DBLink;
import com.jd.tool.db.IRowMapper;
public class AreaDao implements IAreaDao {
public List<Area> select(String parentCode) {
String sql = "select * from area where parent_code='" + parentCode + "'";
final List<Area> LIST = new ArrayList<Area>();
new DBLink().select(sql, new IRowMapper() {
public void rowMapper(ResultSet rs) {
try {
while (rs.next()) {
String id = rs.getString("id");
String name = rs.getString("name");
String code = rs.getString("code");
String parentCode = rs.getString("name");
LIST.add(new Area(id,name,code,parentCode));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
});
return LIST;
}
}
Area .java
package com.jd.Area;
public class Area {
String id;
String name;
String code;
String parentCode;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getParentCode() {
return parentCode;
}
public void setParentCode(String parentCode) {
this.parentCode = parentCode;
}
public Area(String id, String name, String code, String parentCode) {
this.id = id;
this.name = name;
this.code = code;
this.parentCode = parentCode;
}
@Override
public String toString() {
return "Area [id=" + id + ", name=" + name + ", code=" + code + ", parentCode=" + parentCode + "]";
}
}
效果: