Ajax-ajax实例2-根据邮政编码获取地区信息
项目结构
运行效果:
数据库:
/*
SQLyog Ultimate v12.09 (64 bit)
MySQL - 5.5.53 : Database - ajaxexample_2
*********************************************************************
*/ /*!40101 SET NAMES utf8 */; /*!40101 SET SQL_MODE=''*/; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`ajaxexample_2` /*!40100 DEFAULT CHARACTER SET utf8 */; USE `ajaxexample_2`; /*Table structure for table `postalcode` */ DROP TABLE IF EXISTS `postalcode`; CREATE TABLE `postalcode` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`area` varchar(255) NOT NULL COMMENT '省份',
`city` varchar(255) NOT NULL COMMENT '城市',
`code` varchar(6) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; /*Data for the table `postalcode` */ insert into `postalcode`(`id`,`area`,`city`,`code`) values (1,'北京','北京','100000'),(2,'北京','通县','101100'),(3,'北京','昌平','102200'),(4,'上海','上海','200000'),(5,'河南','郑州','450000'); /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
AjaxRequest.js:参见博客【Ajax类】
DBUtil.java:数据库工具类:
package com.gordon.util; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException; public class DBUtil { private static final String URL = "jdbc:mysql://localhost:3306/ajaxexample_2";
private static final String DRIVER = "com.mysql.jdbc.Driver";
private static final String USERNAME = "root";
private static final String PASSWORD = "root"; public static Connection getConnection() throws ClassNotFoundException, SQLException {
Class.forName(DRIVER);
return DriverManager.getConnection(URL, USERNAME, PASSWORD);
}
}
GetPostalcode.java 获取邮编信息servlet:
package com.gordon.servlet; import java.io.IOException; import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
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 com.gordon.service.GetDetailByPostalCode; /**
* Servlet implementation class GetPostalcode
*/
@WebServlet(urlPatterns = { "/GetPostalcode" })
public class GetPostalcode extends HttpServlet {
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public GetPostalcode() {
super();
// TODO Auto-generated constructor stub
} /**
* @see Servlet#init(ServletConfig)
*/
public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { String result = ""; request.setCharacterEncoding("UTF-8");
response.setContentType("text/text;charset=utf-8;"); String postalcode = request.getParameter("postalcode"); try {
result = GetDetailByPostalCode.getContentByPostid(postalcode);
} catch (Exception e) {
System.out.println(e.getMessage());
} response.getWriter().print(result);
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
} }
GetDetailByPostalCode:根据邮编获取详细到信息:
package com.gordon.service; import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; import com.gordon.util.DBUtil; public class GetDetailByPostalCode {
public static String getContentByPostid(String postalcode) throws ClassNotFoundException, SQLException { String result = ""; String sql = "SELECT * FROM postalcode WHERE code = ?"; Connection conn = DBUtil.getConnection();
PreparedStatement pst = conn.prepareStatement(sql); pst.setString(1, postalcode); ResultSet rs = pst.executeQuery();
while(rs.next()) {
result = rs.getString("area") + "|" + rs.getString("city");
} rs.close();
pst.close();
conn.close(); return result;
}
}
register.jap:注册页面:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="">
邮编:<input type="text" id="code" oninput="keypress(this)" onblur="getPostalCode()"><br />
地区:<input type="text" id="area"><br /> 城市:<input type="text" id="city">
</form>
</body> <script type="text/javascript" src="js/AjaxRequest.js"></script> <script type="text/javascript">
// 实例化XMLHttpRequest对象
var xhr = Ajax(); // 限制只能输入数字
function keypress(_this) {
_this.value = _this.value.replace(/[^0-9]/g, '');
} // 失去焦点触发事件
function getPostalCode() {
var postalcode = document.getElementById("code").value; if (postalcode == "" || postalcode.length != 6) {
alert("请输入正确邮编!");
} else {
handleGetPostalcode(postalcode);
}
} // 获取邮编相关的地区和城市
function handleGetPostalcode(postalcode) {
var url = "GetPostalcode";
var params = "postalcode=" + postalcode; var des_url = url + "?nocache=" + new Date().getTime() + "&" + params; xhr.get(des_url, function(data) {
deal_result(data);
});
} // 处理返回数据
function deal_result(data) { document.getElementById("area").value = "";
document.getElementById("city").value = ""; if (data == "") {
return;
} var content = data.split("|");
document.getElementById("area").value = content[0];
document.getElementById("city").value = content[1];
}
</script> </html>
+++++++++++++++++++++++++++
参考:ajax实用案例大全-1动态加载数据 https://wenku.baidu.com/view/c7897bf4700abb68a982fb91.html
Ajax-ajax实例2-根据邮政编码获取地区信息的更多相关文章
- 优化读取纯真IP数据库QQWry.dat获取地区信息
改自HeDaode 2007-12-28的代码 将之改为从硬盘读取后文件后,将MemoryStream放到内存中,提高后续查询速度 ///<summary> /// 提供从纯真IP数据库搜 ...
- java 根据ip获取地区信息(淘宝和新浪)
package com.test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStr ...
- 新浪网易淘宝等IP地区信息查询开放API接口调用方法
通过IP地址获取对应的地区信息通常有两种方法:1)自己写程序,解析IP对应的地区信息,需要数据库.2)根据第三方提供的API查询获取地区信息. 第一种方法,参见文本<通过纯真IP数据库获取IP地 ...
- AJAX 小实例(转摘)
最近老总提了一个小功能,在搜索网吧列表的时候加上网吧所属代理商这个条件,原有的搜索条件是一个地区二级联动,现在需要根据不同的地区显示不同的代理商集合.即在触发地区下拉框的onchange事件时,代理商 ...
- jQuery Ajax 实例 全解析
jQuery Ajax 实例 全解析 jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯. 废话少说,直接进入正题,我 ...
- Ajax常用实例
摘录自:http://www.cnblogs.com/gaopeng527/p/4459622.html 1. 级联下拉列表 例1.1 级联下拉列表. (1)编写AjaxRequest.js文件,并将 ...
- ajax常用实例代码总结新手向参考(一)
http的交互方法有四种:get.post.put(增加数据).delete(删除数据) put和delete实现用的是get和post get方式 页面不能被修改,只是获取查询信息.但是提交的数 ...
- ajax无刷新获取天气信息
浏览器由于安全方面的问题,禁止ajax跨域请求其他网站的数据,但是可以再本地的服务器上获取其他服务器的信息,在通过ajax请求本地服务来实现: <?php header("conten ...
- php的ajax简单实例
很早就听闻ajax的名声,但是却一直不知道怎么用,今天自己捣鼓了一下,竟然会用了,哈哈哈哈. 为了防止我自己忘记,现在把这个简单的实例记录下.这个实例是网上搜的,文末附上链接. 首先你得有自己的服务器 ...
随机推荐
- Android开发之Service的远程调用
在Andorid平台中,各个组件运行在自己的进程中,他们之间是不能相互访问的,但是在程序之间是不可避免的要传递一些对象,在进程之间相互通信.为了实现进程之间的相互通信,Andorid采用了一种轻量级的 ...
- RHEL7 -- 识别文件系统和设备
逻辑卷依赖于设备映射程序(DM)内核驱动程序. 比如有个逻辑卷组rhel中有一个逻辑卷root,对应的设备为/dev/rhel/root.符号链接/dev/rhel/root指向/dev/dm-< ...
- Android多点触摸放大缩小图片
1.Activity package com.fit.touchimage; import android.app.Activity; import android.graphics.Bitmap; ...
- 采用dlopen、dlsym、dlclose加载动态链接库
1.前言 为了使程序方便扩展,具备通用性,可以采用插件形式.采用异步事件驱动模型,保证主程序逻辑不变,将各个业务已动态链接库的形式加载进来,这就是所谓的插件.linux提供了加载和处理动态链接库的系统 ...
- 子墨庖丁Android的ActionBar源代码分析 (一)实例化
假设你从事过Androidclient开发,相信你对ActionBar这套框架并不陌生,或者说你并不了解它,可是你应该时不时的要跟它打交道.抛开ActionBar的实现不说,ActionBar实际上是 ...
- Android Spans介绍(转)
在做一个 TODO 类的软件,使用开源软件 MaterialCalendarView 的时候,发现了需要往日历中添加待办事宜的标记,用到了 MaterialCalendarView 中的 DotSpa ...
- <图形图像,动画,多媒体> 读书笔记 --- AirPlay
AirPlay技术是之前一直没有接触过的技术,正好这次做一个笔记 共用: 1.能够通过AirPlay将iOS和MAC设备上的视频或音频输出到高清电视上或高保真音响 2.能够通过AirPlay将iOS和 ...
- 为ubuntu添加多媒体以及flash等等常用包
因为多媒体mp3,mp4以及flash等等都是一些有版权的东东,ubuntu不能直接集成到安装盘内,所以,做了2个常用包,来存放它们. ubuntu-restricted-addons ubuntu- ...
- An example of using Pandas for regression
An example of using Pandas for regression 这个例子来自这本书 - "Python for Data Analysis", 这本书的作者 W ...
- 记一次Animator状态快速切换问题的解决
事情是这样的,我尝试在一帧内多次切换一些状态(当前状态为Idle的情况下): public Animator animator; void OnEnable() { animator.CrossFad ...