html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ajax json jquery 菜单案例</title>
<style type="text/css">
* {
margin: 0;
padding: 0;
} body {
font-size: 13px;
line-height: 130%;
padding: 60px
}
</style>
<link rel="stylesheet" type="text/css" href="../css/style.css" />
<script src="../js/jquery-2.1.1.min.js" type="text/javascript"></script> </head>
<body>
<select name="first" id="first" style="width:160px">
<option value="0">---请选择---</option>
<option value="1">中国</option>
<option value="2">美国</option>
<option value="3">英国</option>
</select>
<select name="second" id="second" size="3" style="width:160px"></select>
<script type="text/javascript">
$(function() {
$("#first").change(function() {
id=document.getElementById("first").value;
$.ajax({
url : "../jsp/second2.jsp",
dataType : "json",
data:"id="+id,
success : function(data) {
var cttylist=eval(data);
var seconddd = document.getElementById("second");
seconddd.innerHTML=null;
for ( var i = 0; i < cttylist.length; i++) {
var op = document.createElement("option");
op.innerHTML = cttylist[i].name;
seconddd.appendChild(op);
}
},
error : function(data) {
alert(data);
}
});
});
});
</script>
</body>
</html>

jsp

<%@ page language="java" import="java.util.*,com.sy.City,com.sy.CityService,net.sf.json.JSONArray" pageEncoding="ISO-8859-1"%>
<%
//接受传过来的数据
String strid=(String)request.getParameter("id");
Integer id=Integer.parseInt(strid);
//根据id获得书名列表
List<City> citylist=new CityService().getCityByCategory(id);
//设置传输编码
response.setContentType("text/html;charset=UTF-8");
//将json解析后输出到前台
out.println(JSONArray.fromObject(citylist));
%>

java City.java

package com.sy;

public class City {
Integer cid;
String cname;
public Integer getId() {
return cid;
}
public void setId(Integer id) {
this.cid = id;
}
public String getName() {
return cname;
}
public void setName(String cname) {
this.cname = cname;
}
public City(Integer cid, String cname) {
super();
this.cid = cid;
this.cname = cname;
} }

java   CityService.java

package com.sy;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; public class CityService {
static Map<Integer , List<City>> CityDb = new HashMap<Integer , List<City>>();
static {
List<City> list1 = new ArrayList<City>();
List<City> list2 = new ArrayList<City>();
List<City> list3 = new ArrayList<City>();
list1.add(new City(1 , "山东"));
list1.add(new City(1 , "北京"));
list1.add(new City(1 , "上海"));
list2.add(new City(2 , "美1"));
list2.add(new City(2 , "美2"));
list3.add(new City(3 , "英1"));
list3.add(new City(3 , "英2"));
list3.add(new City(3 , "英3"));
CityDb.put(1 , list1);
CityDb.put(2 , list2);
CityDb.put(3 , list3);
}
public List<City> getCityByCategory(int categoryId) {
return CityDb.get(categoryId);
}
}

虚拟数据库_json_ajax的更多相关文章

  1. 如何做到在虚拟数据库和真实数据库之间自由切换?【低调赠送:QQ高仿版GG 4.4 最新源码】

    记得以前在公司上班时,有时候白天的活没干完,我就会把工作带回家晚上加班继续做.但是,我们开发用的数据库是部署在公司局网内部的一台服务器上的,在家里是肯定连不上这台机器的.在家里没有数据库,服务端就跑不 ...

  2. Android之数据库的创建

    一.SQLite介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能.此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PHP ...

  3. Amoeba for MySQL---分布式数据库Proxy解决方案

    Amoeba是什么? Amoeba(变形虫)项目,致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的时候充当SQL路由功能,专注于分布式数据库代理层(Database Proxy ...

  4. Android SQLite (一) 数据库简介

    大家好,今天来介绍一下SQLite的相关知识,并结合Java实现对SQLite数据库的操作. SQLite是D.Richard Hipp用C语言编写的开源嵌入式数据库引擎.它支持大多数的SQL92标准 ...

  5. SQLite数据库简介(转)

    大家好,今天来介绍一下SQLite的相关知识,并结合Java实现对SQLite数据库的操作. SQLite是D.Richard Hipp用C语言编写的开源嵌入式数据库引擎.它支持大多数的SQL92标准 ...

  6. centos6.5安装vsftp服务并配置虚拟账户ftp

      当我们的用户量越来越大时,继续创建更多的系统用户是不明智的,这时就需要为vsftpd创建虚拟账户,但vsftpd虚拟账户的数据库要保存在Berkeley DB格式的数据文件中,所以需要安装db4- ...

  7. Android 开发中使用 SQLite 数据库

    SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能. 此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PHP ...

  8. 数据库读写分离Amoeba

    1.理解读写分离的原理 Amoeba(变形虫)项目,该开源框架于2008发布一款Amoeba for mysql软件,该软件致力于mysql的分布式数据库前端代理层,主要的作用是应用服务访问mysql ...

  9. Mysql数据库读写分离Amoeba

    1.理解读写分离的原理 随着一个网站的业务不断扩展,数据不断增加,数据库的压力也会越来越大,对数据库或者SQL的基本优化可能达不到最终的效果,我们可以采用读写分离的策略来改变现状.读写分离现在被大量应 ...

随机推荐

  1. no suitable driver found for jdbc:mysql//localhost:3306/..

      出现这样的情况,一般有四种原因(网上查的): 一:连接URL格式出现了问题(Connection conn=DriverManager.getConnection("jdbc:mysql ...

  2. java二维码生成

    import java.io.File; import java.nio.file.Path; import java.util.HashMap; import com.google.zxing.Ba ...

  3. 《Linux命令行与shell脚本编程大全》 第七章理解Linux文件权限

    Linux沿用了Unix文件权限的方法,允许用户和组根据每个文件和目录的安全性设置来访问文件. 用户权限通过创建用户时分配的用户ID(UID)来跟踪的.每个用户有唯一的ID,但是登录时用的不是UID, ...

  4. docker下编译mangoszero WOW60级服务端(二)

    开始搭建基于docker的mangoszero WOW服务端,我自己的操作系统是mac os,其他平台操作可以等价替换 1.准备工作 (1) 安装docker,参考docker官方文档,https:/ ...

  5. 对SQL Server事务的4个隔离级别的理解

    事务隔离级别的简单理解   ANSI/ISO SQL标准定义了4种事务隔离级别,这些隔离级别是根据事务并行出现的4个"现象"定义的. 4个现象是: 1.更新丢失(Lost Upda ...

  6. [转载] Thrift-server与spring集成

    转载自http://shift-alt-ctrl.iteye.com/blog/1990026 Thrift服务server端,其实就是一个ServerSocket线程 + 处理器,当Thrift-c ...

  7. MySQL5.6的optimizer_trace

    MySQL的explain是各种执行计划选择的结果,如果想看整个执行计划以及对于多种索引方案之间是如何选择的? MySQL5.6中支持这个功能,optimizer_trace 这个是mysql的参数, ...

  8. YII 多表联查 纵表

    A id 与B a.id B id 与C b.id C id 与D c.id 查A读D数据 应用场景: order表 ordergoods表 goods表 merchant加盟商 order 与ord ...

  9. 《Metasploit魔鬼训练营》虚拟环境搭建中网络配置的一些问题

    直接使用网上下载与书本配套的虚拟机环境,发现NAT服务器10.10.10.254(192.168.10.254)虽然可以和其他虚拟机ping通,但是连不上网.自然windows xp靶机也连不上网了. ...

  10. 2734:十进制到八进制-poj

    总时间限制:  1000ms 内存限制:  65536kB 描述 把一个十进制正整数转化成八进制. 输入 一行,仅含一个十进制表示的整数a(0 < a < 65536). 输出 一行,a的 ...