58-004-2 省级城市二级联动 ajax+servlet 通过xml传递数据.
2016-08-10 16:49
477 查看
1) 编写后台servlet
/Test/src/servlet/CityProvinceServlet.java
2)编写前台页面
3)配置web.xm
/Test/WebRoot/WEB-INF/web.xml
/Test/src/servlet/CityProvinceServlet.java
public class CityProvinceServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("utf-8"); String province = req.getParameter("province"); System.out.println("==CityProvinceServlet== province:"+province); List<String> result =new ArrayList<String>(); resp.setContentType("text/xml;charset=utf-8"); PrintWriter writer = resp.getWriter(); writer.print("<?xml version='1.0' encoding='UTF-8'?>"); writer.print("<root>"); if("湖南".equals(province)){ writer.print("<city>张家界</city><city>长沙</city>"); } else{ writer.print("<city>广州</city><city>中山</city>"); } writer.print("</root>"); writer.flush(); writer.close(); } } |
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>find city</title> </head> <body> <select name="province" id="province"> <option>选择省份</option> <option>广东</option> <option>湖南</option> </select> <select name="city" id="city"> <option value="-1">选择城市</option> </select> <script type="text/javascript"> document.getElementById("province").onchange=function(){ var index = document.getElementById("province").selectedIndex; var province = document.getElementById("province")[index].innerHTML; var cityEle = document.getElementById("city"); //清空城市下拉列表的所有选项 cityEle.options.length=1; if("选择省份"==province) return ; var ajax = new XMLHttpRequest() ; var url = "<%=basePath%>/CityProvinceServlet?time="+new Date().getTime(); ajax.open("post", url) ; ajax.setRequestHeader("content-type","application/x-www-form-urlencoded"); ajax.send("province="+province); ajax.onreadystatechange=function(){ if(ajax.readyState==4) if(ajax.status==200){ //以xml形式返回数据 var result = ajax.responseXML ; var size = result.getElementsByTagName("city").length; for(var i=0;i<size;i++){ //获取xml格式中city节点下的文本信息 var city = result.getElementsByTagName("city")[i].firstChild.nodeValue; var cityNode = document.createElement("option"); cityNode.innerHTML=city ; cityEle.appendChild(cityNode); } } }; } </script> </body> </html> |
/Test/WebRoot/WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <servlet> <servlet-name>CityProvinceServlet</servlet-name> <servlet-class>servlet.CityProvinceServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>CityProvinceServlet</servlet-name> <url-pattern>/CityProvinceServlet</url-pattern> </servlet-mapping> </web-app> |
相关文章推荐
- Ajax通过XML异步提交的方法实现从数据库获取省份和城市信息实现二级联动(xml方法)
- 通过AJAX与Servlet进行交互:通过JSON传递数据
- jsp 通过 Ajax 和servlet之间的连接及数据传递示例
- 【js】使用xml数据载体实现城市省份二级联动
- AJAX应用案例--基于XML,以POST方式,完成二级下拉联动【省份-城市】
- JavaScript之AJAX实现二级联动菜单(jsp+js+servlet+xml)
- js使用xml数据载体实现城市省份二级联动效果
- jquery通过struts2请求,返回json数据,在jsp页面形成二级联动下拉列表
- Ajax servlet 返回xml数据乱码问题
- 用jQuery中的ajax写的返回json数据的二级联动
- 通过ajax来读取xml里面的数据,以及查询好数据如何写入xml里去 来供ajax读取
- AJAX解析XML实例之下拉框省、市二级联动
- Ajax初识_通过ajax校验数据(xml)
- 如何在前台脚本通过json传递数据到后台(使用微软自带的ajax)
- Ajax中XMLHttpRequest对象的创建和servlet中数据的交互
- Jquery+ajax+xml制作二级联动菜单
- AJAX解析XML实例之下拉框二级联动
- 如何在前台脚本通过json传递数据到后台(使用微软自带的ajax)
- ajax jsp中二级下拉框联动 固定数据
- AJAX省级联动Demo+总结XMLHttpRequest 三个返回格式选取策略