j2ee之AJAX二级联动效果
作者:情似雨餘黏地絮 发布时间:2021-09-13 10:06:58
标签:j2ee,ajax,二级联动
本文实例为大家分享了AJAX二级联动效果的具体代码,供大家参考,具体内容如下
Ajax.js
var createAjax = function(){
var ajax = null;
try{
ajax = new ActiveXObject("microsoft.xmlhttp");
}catch(e1){
try{
ajax = new XMLHttpRequest();
}catch(e2){
alert("请换掉你的浏览器");
}
}
return ajax;
}
test3.xml
<%@ page language="Java" contentType="text/html; charset=UTF-8"
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>
<script type="text/javascript" src="js/ajax.js"></script>
<base href="<%=basePath%>" rel="external nofollow" >
<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">
</head>
<body>
<select id="province">
<option>请选择省份</option>
<option>江苏</option>
<option>江西</option>
</select>
<select id="city">
<option>请选择城市</option>
</select>
<script type="text/javascript">
document.getElementById("province").onchange = function(){
var cityElement = document.getElementById("city");
cityElement.options.length = 1;
/* 拿到第一个下拉框中选中的值 */
var index = this.selectedIndex;
var optionElement = this[index];
var optionValue = optionElement.innerHTML;
/* 把这个值发送给服务器 */
var ajax = createAjax();
var url = "${pageContext.request.contextPath }/SelectServlet?time="+new Date().getTime();
var method = "POST";
ajax.open(method , url);
ajax.setRequestHeader("content-type" , "application/x-www-form-urlencoded");
var content = "province=" + optionValue;
ajax.send(content);
/* -----接收相应的数据----- */
ajax.onreadystatechange = function(){
if(ajax.readyState == 4 && ajax.status == 200){
/* 拿到xml */
var xmlDocument = ajax.responseXML;
/* 用xml的解析方式拿到城市根据标签名称 */
var cityArray = xmlDocument.getElementsByTagName("cityOption");
for (var i = 0; i < cityArray.length; i++){
/* 用xml的解析方式拿到城市的值 */
var city = cityArray[i].firstChild.nodeValue;
var option = document.createElement("option");
option.innerHTML = city;
cityElement.appendChild(option);
}
}
}
}
</script>
</body>
</html>
SelectServlet.java
package com.newtouch.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class SelectServlet
*/
@WebServlet("/SelectServlet")
public class SelectServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public SelectServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
// 这里是text/xml是把数据放到了xml中
response.setContentType("text/xml;charset=utf-8");
String province = request.getParameter("province");
response.getWriter().write("<?xml version='1.0' encoding='utf-8' ?>");
response.getWriter().write("<root>");
if ("江苏".equals(province)) {
response.getWriter().write("<cityOption>1</cityOption>");
response.getWriter().write("<cityOption>2</cityOption>");
response.getWriter().write("<cityOption>3</cityOption>");
response.getWriter().write("<cityOption>4</cityOption>");
} else if ("江西".equals(province)) {
response.getWriter().write("<cityOption>一</cityOption>");
response.getWriter().write("<cityOption>二</cityOption>");
response.getWriter().write("<cityOption>三</cityOption>");
response.getWriter().write("<cityOption>四</cityOption>");
}
response.getWriter().write("</root>");
}
}
来源:http://www.cnblogs.com/ShaoXin/p/7412467.html


猜你喜欢
- java就业前需要掌握的专业技能1.熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的Java API,包括集合框架、
- WPF中有一个DrawingContext类,该类提供了很多画法方法,例如DrawLine,DrawText,DrawRectangle等。
- 什么是ListView分页加载数据功能呢?在现在的大数据时代,我们不可能把某些数据全部展示到界面,好比我们经常会看的QQ空间一样,当你看动态
- 装箱和拆箱是值类型和引用类型之间相互转换是要执行的操作。 1. 装箱在值类型向引用类型转换时发生2. 拆箱在引用类型向值
- 之前不怎么了解这个,一直以为做起来很复杂。 直到前两天公司要求要做这个功能。 做了之后才发现 这不过就是一个POST请求就能实现的东西。现在
- 篇首,完全没有技术含量的帖子,高手略过,只为十几年后重新捡起的我爱好玩玩。。。起因,一个朋友说他下载了很多短视频,但只需要要其中的一小截,去
- 今天想说的就是能够在我们操作数据库的时候更简单的更高效的实现,现成的CRUD接口直接调用,方便快捷,不用再写复杂的sql,带吗简单易懂,话不
- 1、jdbc1) 含义:JDBC是java语言连接数据库,Java Date Base Connectivity2) jdbc的本质:在编程
- 一、事件背景个人感觉自己做性能测试,可以说是轻车熟路了,而且工作多年一直都是这一套测试思路及体系,从未质疑过自己,也许是狮子座的迷之自信吧!
- 快速排序快速排序是一种比较高效的排序算法,采用“分而治之”的思想,通过多次比较和交换来实现排序,在一
- 前言数据库访问是web应用必不可少的部分。现今最常用的数据库ORM框架有Hibernate与Mybatis,Hibernate貌似在传统IT
- “热更新”、“热部署”相信对于混合式开发的童鞋一定不陌生,那么APP怎么避免每次升级都要在APP应用商店发布呢?这里就用到了混合
- 目录1、this代表了()的对象引用,super表示的是当前对象的()对象?2、输出内容是:3、下面程序的输出是:()4、执行下列代码的输出
- 常用,记录一下。效果图:首先新建xml文件 bg_gradient.xml<?xml version="1.0&
- java自定义切面增强写代码时会遇到一些有些重复机械的工作, 这个时候就可以运用切面技术来帮我们节约时间介绍如何使用自定义注解增强方法, 实
- 本文实例为大家分享了C#实现学生成绩管理系统的具体代码,供大家参考,具体内容如下C#作业 用循环结构/数组实现进入启动页面管理员身份登入用户
- 字符串采用unicode编码的方式时,计算字符串长度的方法找出UNICODE编码中的汉字的代表的范围“\u4E00” 到“\u9FBB”之间
- 事发地原默认的Feign是使用URLConnector进行通信的,当换为okhttp时,直接引入包及配置以下内容根本不生效,还是走原生的。f
- 本文章使用C#编程,制作一个端口扫描器,能够扫描本机有哪些端口开放了,并显示出来,分别使用单线程和多线程进行了比较。编译软件:Visual
- 使用 DateFormat 格式化日期、时间DateFormat 也是一个抽象类,它也提供了如下几个类方法用于获取 DateFormat 对