Ajax实现省份-城市二级下拉联动

基于XML,以POST方式,完成省份-城市二级下拉联动

数据库 mysql,表:t_city

JavaWeb项目,使用servlet

ajax.js
// 创建AJAX异步对象
function createAJAX() {
	var ajax = null;

	if (window.XMLHttpRequest) {
		ajax = new XMLHttpRequest();
	} else {
		// 如果是IE5或IE6,使用 ActiveXObject
		ajax = new ActiveXObject("Microsoft.XMLHTTP");
	}

	return ajax;
}

province.jsp

<%@ page language="java" pageEncoding="UTF-8"%>




	基于XML,以POST方式,完成省份-城市二级下拉联动
	




	
	  
	
	
	
	
	
 	


ProvinceCityServlet.java

package cn.javaee.js.province;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 基于XML,以POST方式,完成省份-城市二级下拉联动
 * 
 * @author lzf
 * @version V1.0
 */
public class ProvinceCityServlet extends HttpServlet {

	private static final long serialVersionUID = -3426124869778232040L;

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		// 通知ajax异步对象,服务器响应的数据是xml格式的
		response.setContentType("text/xml;charset=UTF-8");
		try {
			// 省份名称
			String provinceName = request.getParameter("provinceName");
			// 用来存放xml数据
			StringBuffer sb = new StringBuffer();
			sb.append("");
			sb.append("");

			// JDBC连接mysql数据库
			Connection conn = null;
			Class.forName("com.mysql.jdbc.Driver");
			String url = "jdbc:mysql://localhost:3306/hib_demo";
			conn = DriverManager.getConnection(url, "root", "root");

			// 预编译,防注入
			String sql = "select city from t_city where province=? ";
			PreparedStatement stmt = conn.prepareStatement(sql);
			// 注意:这里的index是1而不是0
			stmt.setString(1, provinceName);
			ResultSet rs = stmt.executeQuery();
			while (rs.next()) {
				// 注意:这里的index是1而不是0
				String city = rs.getString(1);
				sb.append("");
				sb.append(city);
				sb.append("");
			}
			sb.append("");

			// 关闭连接
			rs.close();
			stmt.close();
			conn.close();

			// 输出流
			PrintWriter pw = response.getWriter();
			pw.write(sb.toString());
			// 关闭流
			pw.flush();
			pw.close();

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}




你可能感兴趣的:(AJAX)