1 、实现省市的二级无刷新联动选择省名连接服务器动态加载市名(list.jsp)
<%@ page language="java" pageEncoding="gbk"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>省市联动</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script type="text/javascript">
var xhr;
function change(provinceId){
//如果选择"==请选择==" 清空城市下拉列表
if(provinceId=='0'){
clearCity();
return;
}
//创建XMLHttpRequest对象
createXmlHttp();
//设置回调函数
xhr.onreadystatechange = response;
//初始化
xhr.open('GET','ListServlet.do?provinceId='+provinceId,true);
//设置不使用缓存
xhr.setRequestHeader("If-Modified-Since","0");
//发送请求
xhr.send(null);
}
function response(){
var city = document.getElementById("city");
if(xhr.readyState == 4 && xhr.status == 200 ){
var s = xhr.responseText;
var citys = s.split(",");
clearCity();
for(var i=0;i<citys.length;i++){
city.options[city.options.length] = new Option(citys[i],citys[i]);
}
}
}
function createXmlHttp(){
//非IE浏览器创建XmlHttpRequest对象
if(window.XmlHttpRequest){
xhr = new XmlHttpRequest();
}
//IE浏览器创建XmlHttpRequest对象
if(window.ActiveXObject){
try{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
xhr = new ActiveXObject("msxml2.XMLHTTP");
}
}
}
//清空城市下拉列表
function clearCity(){
var city = document.getElementById("city");
city.options.length = 0;
city.options[0] = new Option('==请选择==','0');
}
</script>
</head>
<body>
<h1>省市联动</h1><hr>
<h3>Where Are You From ?</h3>
省份:<select id="province" onchange="change(this.value)">
<option value="0">==请选择==</option>
<option value="1">浙江</option>
<option value="2">江苏</option>
<option value="3">湖北</option>
<option value="4">湖南</option>
<option value="5">广东</option>
</select>
城市:<select id="city">
<option>==请选择==</option>
</select>
</body>
</html>
2、处理逻辑的servlert类 ListServlet.java
package com.test.ajax;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ListServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public static Map<String,List<String>> map= new HashMap<String,List<String>>();
public void init() throws ServletException{
List<String> list = new ArrayList<String>();
list.add("杭州");
list.add("绍兴");
list.add("宁波");
list.add("台州");
map.put("1", list);
list = new ArrayList<String>();
list.add("南京");
list.add("苏州");
list.add("常州");
list.add("无锡");
map.put("2", list);
list = new ArrayList<String>();
list.add("武汉");
list.add("鄂州");
list.add("荆州");
list.add("十堰");
map.put("3", list);
list = new ArrayList<String>();
list.add("长沙");
list.add("岳阳");
list.add("常德");
list.add("张家界");
map.put("4", list);
list = new ArrayList<String>();
list.add("广州");
list.add("珠海");
list.add("深圳");
list.add("东莞");
map.put("5", list);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String provinceId = request.getParameter("provinceId");
List<String> list = map.get(provinceId);
StringBuffer sb = new StringBuffer();
if(list!=null){
for(String s: list) {
sb.append(s).append(",");
}
if(!list.isEmpty()){
sb.deleteCharAt(sb.length()-1);
}
}
response.setContentType("test/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.print(sb.toString());
out.close();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
3、web.xml 信息配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>myServlet</servlet-name>
<servlet-class>com.test.ajax.ListServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>/ListServlet.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>list.jsp</welcome-file>
</welcome-file-list>
</web-app>
4、截图显示
分享到:
相关推荐
该资源包含了一个使用jquery ajax实现的省市二级联动的简单demo,简单易懂,可以参考博客:http://blog.csdn.net/mockingbirds/article/details/46842327
在S2SM的框架下,使用Ajax完成的省市二级联动,使用Jquery完成的Ajax,使用JSON,JSONArray完成,在eclipse下即可运行 一直在找类似的资源找不着,干脆自己写一个和大家分享
ajax初级入门。 无刷新实现省市2级菜单联动。 代码简单,很容易明白。
使用ajax + servlet + jdbc做的省市区三级联动,内含sql文件。对应有博客介绍,欢迎访问http://blog.csdn.net/qq_19558705/article/details/50318981
JavaWeb通过ajax、json实现省市二级联动:客户端通过jsp页面,来访问服务器的servlet,服务器访问数据库,返回json数据给客户端
城市四级联动源代码~很强大的四级联动!大家一起来看看吧
Ajax省市二级联动,保证能用,SQL脚本在项目中。。。欢迎学习,共同进步
struts2 ajax实现的二级联动 struts2 ajax实现的二级联动
利用ajax无刷新省市二级联动 直接可以使用啊啊
包括两个资源:通过JS实现的二级省市联动、AJAX实现的省市县三级联动
php+ajax 二级联动 无刷新实现省市县联动。
用ajax实现的jsp二级联动下拉列表,使用异步交互的二级联动堪称jsp革命性变动。以前的联动大都是把所有的数据取出来放在javascript中,就一个字------烦
Struts2+jQuery+ajax+mySql实现省市二级联动
主要用于三级联动,使用的html,ajax,后端用的原生servlet,或者你也可以根据自己的需要使用框架,毕竟只是做了数据库查询操作,返回的是json格式的数据,所以对后端要求不高,本资源为自己整理出来的,当然数据库...
此文件是借助别人的基础上稍作修改 .net+xml+ajax.dll实现省市县三级联动无刷新代码例子
Ajax省市三级联动,大家只要会用就可以了,祝大家天天向上!
使用Ajax Json实现省市二级联动使用Ajax Json实现省市二级联动
使用AJAX从数据库中读取省、市、地区的数据,添加到select的option选项,实现自动筛选。
ajax实现登陆二级联动增删改查