1-----Option--------------------------------------------------------------------------------------------------
package net.yaorange.entity;
public class Option {
private String option_name;
private String option_value;
public Option() {
}
public Option(String optionName, String optionValue) {
option_name = optionName;
option_value = optionValue;
}
public String getOption_name() {
return option_name;
}
public void setOption_name(String optionName) {
option_name = optionName;
}
public String getOption_value() {
return option_value;
}
public void setOption_value(String optionValue) {
option_value = optionValue;
}
}
2--------------JSONServlet --------------------------------------------------------------------------------------
package net.yaorange;
import java.io.IOException;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
import net.yaorange.entity.Option;
@WebServlet("/json.do")
public class JSONServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req, resp);
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
String optionName = req.getParameter("optionName");
System.out.println(optionName);
JSONArray jsonArray = null;
if("cd".equals(optionName)){
Option op1 = new Option("金牛区","jn");
Option op2 = new Option("青羊区","qy");
Option op3 = new Option("锦江区","jj");
ArrayList<Option> list_op = new ArrayList<Option>();
list_op.add(op1);
list_op.add(op2);
list_op.add(op3);
jsonArray = JSONArray.fromObject(list_op);
}else if("cq".equals(optionName)){
Option op1 = new Option("江北区","jb");
Option op2 = new Option("渝中区","yz");
Option op3 = new Option("南岸区","na");
ArrayList<Option> list_op = new ArrayList<Option>();
list_op.add(op1);
list_op.add(op2);
list_op.add(op3);
jsonArray = JSONArray.fromObject(list_op);
}
resp.getWriter().println(jsonArray);
}
}
3------------------------select.jsp--------------------------------------------------------------------------------------------
<%@ 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>My JSP 'index.jsp' starting page</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">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript" src="js/jquery-3.1.0.min.js"></script>
</head>
<body>
<select id="s1" οnchange="send()">
<option value="cd">成都</option>
<option value="cq">重庆</option>
</select>
<select id="s2">
</select>
</body>
<script type="text/javascript">
//创建XMLHttpRequest对象
function createXMLHttpRequest(){
var XMLHttp;
try{
//大多数浏览器,以及IE7和IE更高版本
XMLHttp = new XMLHttpRequest();
}catch(e){
try{
//IE5.5及以下的版本
XMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
try{
//IE6.0
XMLHttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
//以上都不是,执行的代码
}
}
}
return XMLHttp;
}
function send(){
var s1 = document.getElementById("s1").value;
var XMLHttp = createXMLHttpRequest();
//1.打开服务器的连接
XMLHttp.open("post","json.do?optionName="+s1, true);
XMLHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
//2.发送请求
XMLHttp.send(null);
//3.接收服务器响应
XMLHttp.onreadystatechange = function(){
//4.表示服务器响应结束,200表示服务器成功响应
if(XMLHttp.readyState == 4 && XMLHttp.status == 200){
var xy = XMLHttp.responseText;
var xy_obj = eval("("+xy+")"); //把后台传过来的json字符串,转换成js类型
$("#s2").empty();
for(var i=0; i<xy_obj.length; i++){
$("#s2").append("<option value='"+xy_obj[i].option_value+"'>"+xy_obj[i].option_name+"</option>");
}
}
}
}
$(function(){
send();
})
</script>
</html>
需要JSON jar包