`
天空之城
  • 浏览: 409506 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java +ajax 省市级联

    博客分类:
  • Java
阅读更多
 
java+AJAX省市级联

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<jsp:directive.page import="com.demo.bean.ChinaStates"/>
<jsp:directive.page import="com.demo.conn.ConnDB"/>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
      <script type="text/javascript">
          var xmlHttp;
          //定义一个变量用于存放XMLHTTPREQUEST对象
          var xmlHttp;
          //该函数用于创建一个XMLHttpRequest对象
        //该函数用于创建一个XMLHttpRequest对象
     function createXMLHttpRequest() {
   if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  }
  else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
  }  
   //这是响应省份列表的onChange事件的处理方法
   function updateSelect(){
var selected = document.all.slt1.value;//得到省份列表的当前选值
//创建一个XMLHttpRequest对象
createXMLHttpRequest();
//将状态触发器绑定到一个函数
xmlHttp.onreadystatechange = processor1;
//通过GET方法向指定的URL建立服务器的调用
xmlHttp.open("GET", "CityServlet?selected="+selected);
//发送请求
xmlHttp.send(null);
  }
  //处理从服务器返回的XML文档并更新地市下拉列表
  function processor1() {
//定义一个变量用于存放从服务器返回的响应结果
var result;
if(xmlHttp.readyState == 4) { //如果响应完成
if(xmlHttp.status == 200) {//如果返回成功
//取出服务器返回的XML文档的所有city标签的子节点
result = xmlHttp.responseXML.getElementsByTagName("city");
//先清除地市列表的现有内容
while (document.all.slt2.options.length>0){
document.all.slt2.removeChild(document.all.slt2.childNodes[0]);
}
//解析XML中的数据并更新地市列表
for(var i=0;i<result.length;i++){
var option = document.createElement("OPTION");
option.text = result[i].childNodes[0].childNodes[0].nodeValue;//这就是取出<cityname>中的值
option.value = result[i].childNodes[1].childNodes[0].nodeValue;//这就是取出<cityvalue>中的值
document.all.slt2.options.add(option);//为地市列表中添加选项
}
}
}
}
</script>
<%
       ArrayList chinastates=new ConnDB().getList("0001");
   ChinaStates china=null;
%>
  </head>
     <body>
     <form method="post" name="form1"  action="">
       
        <select id="slt1" onChange="updateSelect()">
           <option>请选择省份:</option>
        <%
          for(int i=0;i<chinastates.size();i++)
          {
          china=(ChinaStates)chinastates.get(i);
         %>
            <option value="<%=china.getAreaCode()%>"><%=china.getAreaName() %></option>
          <%
          }
          %>
        </select> 省
       
        <select id="slt2">
            <option value="">请选择地市</option>  
        </select>
     </form>
   
  </body>
</html>


****************CityServlet******************


package com.demo.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;

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

import com.demo.bean.ChinaStates;
import com.demo.conn.ConnDB;

public class CityServlet extends HttpServlet {

/**
* Constructor of the object.
*/
public CityServlet() {
super();
}

/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}

/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

this.doPost(request, response);
}

/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/xml");
response.setCharacterEncoding("UTF-8");
String selected = request.getParameter("selected");
PrintWriter out = response.getWriter();
ArrayList<ChinaStates> chinas=new ConnDB().getList(selected);
ChinaStates states=null;
//下面分别为两个省份创建地市
out.println("<response>");
for(int i=0;i<chinas.size();i++)
{
states=(ChinaStates)chinas.get(i);
   out.print("<city>");
    out.print("<cityname>"+states.getAreaName()+"</cityname>");
    out.print("<cityvalue>"+states.getAreaCode()+"</cityvalue>");
   out.print("</city>");
}
out.print("</response>");
 

}

/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occure
*/
public void init() throws ServletException {
// Put your code here
}

}

分享到:
评论

相关推荐

    SSH+Ajax+JSON省市级联效果Spring+Struts+Hibernate+Jquery

    SSH+Ajax+JSON在Web开发中的应用主要集中在构建动态、响应迅速的用户界面,这里我们主要探讨Spring、Struts、Hibernate这三大框架如何与Ajax和JSON技术结合,以实现省市级联选择的效果。 首先,Spring是Java企业级...

    xml+js省市级联(带省市xml)

    在“xml+js省市级联”这个场景中,它们被结合使用来实现一个动态的、无需页面刷新的省级和市级联动选择功能。 这种功能常见于地址输入或区域选择的场景,用户首先选择省份,然后根据所选省份动态加载对应的市,整个...

    ajax实现省市级联

    **Ajax 实现省市级联** 在 Web 应用开发中,省市级联是一个常见的功能,它允许用户在选择省份后自动加载对应的市。这个过程通常使用 Ajax(Asynchronous JavaScript and XML)技术来实现,以提供更好的用户体验,...

    省市级联(JAVA)

    在Java中实现省市级联,可以采用多种方法。一种常见的方式是使用MVC(Model-View-Controller)架构,其中: 1. **Model**:数据模型通常由两个类组成,即`Province`和`City`。`Province`类包含省份信息,如省份ID和...

    用Java做的省市级联菜单

    在Java开发中,省市级联菜单是一个常见的功能,主要用于用户选择地理位置时,如省、市、区等。这种联动效果可以提升用户体验,因为用户选择一个省份后,相关的城市会自动加载出来,无需手动刷新页面。在这个场景中,...

    省市级联实现

    ### 省市级联实现详解 #### 一、概述 在现代Web应用开发中,级联选择器(如省市区选择)是一种常见的交互设计模式,主要用于处理多层级数据的关联选择场景。例如,在用户填写地址时,根据所选省份动态显示对应的...

    省市级联列表

    8. **前端展示**:在Web应用中,省市级联列表通常会通过Ajax异步请求获取,然后在前端页面动态渲染,实现下拉框的级联选择效果。 9. **数据同步**:由于行政区划可能会有变动,所以数据库中的数据需要定期同步,这...

    省市级联 java jsp

    总的来说,"省市级联 java jsp"这个功能的实现涉及到前端的jQuery和AJAX技术,以及后端的Java Servlet和JSP。通过前后端的协同工作,实现了用户在选择省份时,城市列表无刷新动态更新的效果,提高了Web应用的交互性...

    省市级连(Ajax+Struts+SQLServer2008)

    【标题】"省市级联动(Ajax+Struts2+SQLServer2008)"是一个典型的Web应用程序开发案例,主要用于实现用户在选择省份时,下拉菜单动态加载对应的城市列表。这个系统利用了Ajax技术进行异步数据交互,Struts2框架进行...

    Ajax+jsp制作带数据库的省市级联下拉菜单

    "Ajax+jsp制作带数据库的省市级联下拉菜单"是一个常见且实用的技术方案,它能够提供无缝的用户体验,无需页面刷新即可完成省市选择。下面我们将详细探讨这一技术的应用及其背后的原理。 首先,Ajax(Asynchronous ...

    jquery实现省市级联

    在网页开发中,省市级联下拉框是一种常见的交互元素,用于用户选择所在省份和城市。jQuery 是一个广泛使用的 JavaScript 库,它简化了 DOM 操作、事件处理和动画等功能,使得实现这种功能变得更加便捷。本文将深入...

    Ajax 四级导航菜单ASP+Access动态版

    jQuery+AJAX+ASP无刷新提交、删除、翻页实例 ASP+AJAX无刷新用户注册、判断用户名数据库版 Ajax无刷新登录实例(ASP+ACCESS) ASP+ajax树状折叠菜单动态读取数据库版 ASP+AJAX表单验证含省市级联菜单 ASP+AJAX批量...

    省市级联完整代码

    在IT行业中,"省市级联完整代码"通常指的是一个用于实现中国省级和市级选择功能的程序代码,这种功能常见于各种需要用户输入地区信息的Web应用或者移动应用中。级联选择意味着当用户选择了一个省份后,下拉框会动态...

    省市级联 html组件

    标签“源码”表明这个压缩包可能包含了该省市级联组件的源代码,开发者可以通过查看源代码了解其内部工作原理,学习如何构建这样的功能。而“工具”标签则可能意味着这个组件是一个可复用的工具,可以被其他开发者...

    ajax 省级 市级 联动效果 Java

    这种省级市级联动的效果在实际项目中非常实用,通过AJAX与Java Web服务端的配合,可以提供流畅的用户体验,同时降低了服务器的负载。了解和掌握这种技术对于提升Web应用的交互性和效率至关重要。

    模拟省市级联jsp页面模拟

    在IT行业中,省市级联(Province-City-County Cascade)是一种常见的前端交互设计,它用于在用户选择一个省份后自动加载并显示该省份下的城市列表,进一步选择城市后,再加载对应的城市下的区县列表。这种功能在地理...

    省市级联三级联动

    java实现省市三级联动 ajax hibernate struts 数据从数据库中查出。 以前在网上找了几天没有完整的,现在做一个完整示例与大家分享 strtus 等jar包已删除,如有需要可与我联系

    省市级联选择的JS特效代码

    "省市级联选择的JS特效代码"就是这样一个实现,它允许用户逐级选择省份、城市,形成一个完整的地区路径,具有良好的用户体验。这个项目特别强调了对不同浏览器的兼容性,这意味着它可能采用了有效的跨浏览器解决方案...

    使用XML和dwr ajax 集成实现省市级联菜单

    在省市级联菜单的场景中,DWR可以在用户选择省份时,通过Ajax(Asynchronous JavaScript and XML)调用后台服务,获取对应省份的市列表,并更新城市下拉框。 Ajax的核心是能够在不刷新整个页面的情况下更新部分网页...

    Jsp+servlet MVC模式 实现省市级联

    在提供的"省市级联"压缩包文件中,可能包含了实现上述功能的相关源代码,包括Java类、DAO接口、Servlet配置、JSP页面以及可能的数据库脚本。通过阅读和理解这些代码,你可以学习到如何在实际项目中应用JSP和Servlet...

Global site tag (gtag.js) - Google Analytics