此作品实现用ajax开发可配级联地刷新下拉框.
1.开发环境:eclipse+tomcat+mysql
2.工程名:ajax_select
3.主要涉及文件及内容:
-----页面------------
index.jsp
------工程配置------------
web.xml
------类文件------------
AjaxServlet.java
package com.ajax;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
public class AjaxServlet extends HttpServlet{
private static final String CONTENT_TYPE="text/xml; charset=gb2312";
public void doGet(HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException{
String myid = request.getParameter("id");
String sql = "select id,pid,name,mylevel from region where pid = '"+myid+"'";
Connection conn = null;
try{
ArrayList list = new ArrayList();
Context ctx = new InitialContext();
if(ctx == null )
throw new Exception("No Context!");
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/ajax_select");
if (ds != null) {
conn = ds.getConnection();
if(conn != null) {
RegionBean rb = null;
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
StringBuffer sb=new StringBuffer("<regions></regions>");
while(rs.next()) {
sb.append("<region></region>");
sb.append("<id></id>").append(rs.getString(1)).append("");
sb.append(" <pid></pid> ").append(rs.getString(2)).append("");
sb.append("<name></name>").append(rs.getString(3)).append("");
sb.append("<level></level>").append(rs.getString(4)).append("");
sb.append("");
}
sb.append("");
System.out.println(sb.toString());
response.setContentType(CONTENT_TYPE);
PrintWriter out=response.getWriter();
out.write(sb.toString());
out.close();
}
}
}catch(Exception e) {
e.printStackTrace();
}finally{
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException{
doGet(request, response);
}
}
AjaxTest.java
package com.ajax;
import javax.naming.*;
import javax.sql.*;
import java.sql.*;
import java.util.ArrayList;
public class AjaxTest {
public ArrayList init() {
String id = "";
String pid = "";
String name = "";
ArrayList list = null;
Connection conn = null;
try{
list = new ArrayList();
Context ctx = new InitialContext();
if(ctx == null )
throw new Exception("Boom - No Context");
DataSource ds =
(DataSource)ctx.lookup(
"java:comp/env/jdbc/ajax_select");
if (ds != null) {
conn = ds.getConnection();
if(conn != null) {
RegionBean rb = null;
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select id,pid,name,mylevel from region where pid = ''");
while(rs.next()) {
id =rs.getString(1);
pid =rs.getString(2);
name =rs.getString(3);
rb = new RegionBean();
rb.setId(id);
rb.setPid(pid);
rb.setName(name);
list.add(rb);
}
}
}
}catch(Exception e) {
e.printStackTrace();
}finally{
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return list;
}
}
}
RegionBean.java
package com.ajax;
public class RegionBean {
String id = "";
String pid = "";
String name = "";
int level;
public String getId() { return id; }
public String getPid() { return pid;}
public String getName() { return name;}
public int getLevel(){return level;}
public void setId(String id){
this.id=id;
}
public void setPid(String pid){
this.pid=pid;
}
public void setName(String name){
this.name=name;
}
public void setLevel(int level){
this.level = level;
}
}
------sql语句
drop table if exists region;
create table region(
id varchar(30) not null,
pid varchar(30) null,
name varchar(50) null,
mylevel int not null,
primary key (id)
)
type = InnoDB;
insert into region(id,pid,name,mylevel) values('a01','','state1',0);
insert into region(id,pid,name,mylevel) values('a02','','state2',0);
insert into region(id,pid,name,mylevel) values('a03','','state3',0);
insert into region(id,pid,name,mylevel) values('a04','','state4',0);
insert into region(id,pid,name,mylevel) values('a05','','state5',0);
insert into region(id,pid,name,mylevel) values('a01b01','a01','province1',1);
insert into region(id,pid,name,mylevel) values('a01b02','a01','province2',1);
insert into region(id,pid,name,mylevel) values('a01b03','a01','province3',1);
insert into region(id,pid,name,mylevel) values('a01b04','a01','province4',1);
insert into region(id,pid,name,mylevel) values('a02b01','a02','province21',1);
insert into region(id,pid,name,mylevel) values('a02b02','a02','province22',1);
insert into region(id,pid,name,mylevel) values('a02b03','a02','province23',1);
insert into region(id,pid,name,mylevel) values('a02b04','a02','province24',1);
insert into region(id,pid,name,mylevel) values('a03b01','a03','province31',1);
insert into region(id,pid,name,mylevel) values('a03b02','a03','province32',1);
insert into region(id,pid,name,mylevel) values('a03b03','a03','province33',1);
insert into region(id,pid,name,mylevel) values('a03b04','a03','province34',1);
insert into region(id,pid,name,mylevel) values('a01b01c01','a01b01','city11',2);
insert into region(id,pid,name,mylevel) values('a01b01c02','a01b01','city12',2);
insert into region(id,pid,name,mylevel) values('a01b01c03','a01b01','city13',2);
insert into region(id,pid,name,mylevel) values('a01b01c04','a01b01','city14',2);
insert into region(id,pid,name,mylevel) values('a03b01c01','a03b01','city31',2);
insert into region(id,pid,name,mylevel) values('a03b01c02','a03b01','city32',2);
insert into region(id,pid,name,mylevel) values('a03b01c03','a03b01','city33',2);
insert into region(id,pid,name,mylevel) values('a03b01c04','a03b01','city34',2);
insert into region(id,pid,name,mylevel) values('a01b01c01d01','a01b01c01','region1',3);
insert into region(id,pid,name,mylevel) values('a01b01c01d02','a01b01c01','region2',3);
insert into region(id,pid,name,mylevel) values('a01b01c01d03','a01b01c01','region3',3);
insert into region(id,pid,name,mylevel) values('a01b01c01d04','a01b01c01','region4',3);
insert into region(id,pid,name,mylevel) values('a03b01c02d01','a03b01c02','region21',3);
insert into region(id,pid,name,mylevel) values('a03b01c02d02','a03b01c02','region22',3);
insert into region(id,pid,name,mylevel) values('a03b01c02d03','a03b01c02','region23',3);
insert into region(id,pid,name,mylevel) values('a03b01c02d04','a03b01c02','region24',3);
insert into region(id,pid,name,mylevel) values('a01b01c03d01','a01b01c03','region31',3);
insert into region(id,pid,name,mylevel) values('a01b01c03d02','a01b01c03','region32',3);
insert into region(id,pid,name,mylevel) values('a01b01c03d03','a01b01c03','region33',3);
insert into region(id,pid,name,mylevel) values('a01b01c03d04','a01b01c03','region34',3);
insert into region(id,pid,name,mylevel) values('a03b01c03d01','a03b01c03','region31',3);
insert into region(id,pid,name,mylevel) values('a03b01c03d02','a03b01c03','region32',3);
insert into region(id,pid,name,mylevel) values('a03b01c03d03','a03b01c03','region33',3);
insert into region(id,pid,name,mylevel) values('a03b01c03d04','a03b01c03','region34',3);
insert into region(id,pid,name,mylevel) values('a03b01c04d01','a03b01c04','county41',3);
insert into region(id,pid,name,mylevel) values('a03b01c04d02','a03b01c04','county42',3);
insert into region(id,pid,name,mylevel) values('a03b01c04d03','a03b01c04','county43',3);
insert into region(id,pid,name,mylevel) values('a03b01c04d04','a03b01c04','county44',3);
insert into region(id,pid,name,mylevel) values('a01b01c01d01e01','a01b01c01d01','town1',4);
insert into region(id,pid,name,mylevel) values('a01b01c01d01e02','a01b01c01d01','town2',4);
insert into region(id,pid,name,mylevel) values('a01b01c01d01e03','a01b01c01d01','town3',4);
insert into region(id,pid,name,mylevel) values('a01b01c01d01e04','a01b01c01d01','town4',4);
insert into region(id,pid,name,mylevel) values('a03b01c02d04e01','a03b01c02d04','town21',4);
insert into region(id,pid,name,mylevel) values('a03b01c02d04e02','a03b01c02d04','town22',4);
insert into region(id,pid,name,mylevel) values('a03b01c02d04e03','a03b01c02d04','town23',4);
insert into region(id,pid,name,mylevel) values('a03b01c02d04e04','a03b01c02d04','town24',4);
insert into region(id,pid,name,mylevel) values('a03b01c04d04e01','a03b01c04d04','town41',4);
insert into region(id,pid,name,mylevel) values('a03b01c04d04e02','a03b01c04d04','town42',4);
insert into region(id,pid,name,mylevel) values('a03b01c04d04e03','a03b01c04d04','town43',4);
insert into region(id,pid,name,mylevel) values('a03b01c04d04e04','a03b01c04d04','town44',4);
insert into region(id,pid,name,mylevel) values('a03b01c04d04e01f01','a03b01c04d04e01','village1',5);
insert into region(id,pid,name,mylevel) values('a03b01c04d04e01f02','a03b01c04d04e01','village2',5);
insert into region(id,pid,name,mylevel) values('a03b01c04d04e01f03','a03b01c04d04e01','village3',5);
insert into region(id,pid,name,mylevel) values('a03b01c04d04e01f04','a03b01c04d04e01','village4',5);
insert into region(id,pid,name,mylevel) values('a01b01c01d01e02f01','a01b01c01d01e02','village21',5);
insert into region(id,pid,name,mylevel) values('a01b01c01d01e02f02','a01b01c01d01e02','village22',5);
insert into region(id,pid,name,mylevel) values('a01b01c01d01e02f03','a01b01c01d01e02','village23',5);
insert into region(id,pid,name,mylevel) values('a01b01c01d01e02f04','a01b01c01d01e02','village24',5);
insert into region(id,pid,name,mylevel) values('a03b01c02d04e04f01','a03b01c02d04e04','village41',5);
insert into region(id,pid,name,mylevel) values('a03b01c02d04e04f02','a03b01c02d04e04','village42',5);
insert into region(id,pid,name,mylevel) values('a03b01c02d04e04f03','a03b01c02d04e04','village43',5);
insert into region(id,pid,name,mylevel) values('a03b01c02d04e04f04','a03b01c02d04e04','village44',5);
insert into region(id,pid,name,mylevel) values('a03b01c04d04e01f01g01','a03b01c04d04e01f01','smallvillage1',6);
insert into region(id,pid,name,mylevel) values('a03b01c04d04e01f01g02','a03b01c04d04e01f01','smallvillage2',6);
insert into region(id,pid,name,mylevel) values('a03b01c04d04e01f01g03','a03b01c04d04e01f01','smallvillage3',6);
insert into region(id,pid,name,mylevel) values('a03b01c04d04e01f01g04','a03b01c04d04e01f01','smallvillage4',6);
------Tomcat 的service.xml
请在%Tomcat_Home%/conf/service.xml文件里参照附件里的service.xml修改创建虚似路径
<parameter></parameter>
-------------------------------------------------------------------------------------------------------
工程原稿在附件里,详细见附件