zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    How to install VXDIAG Honda, Toyota and JLR SDD software
    16% off MPPS V16 ECU tuning tool for EDC15 EDC16 EDC17
    Cummins INSITE locked and ask for verification code
    How to use BMW Multi Tool 7.3 to replace lost key for BMW X1
    Bleed Brake Master Cylinder with Intelligent Tester IT2
    Porsche Piwis Tester II “No VCI has been detected”,how to do?
    Creader VIII VS. Creader VII+
    How to solve GM MDI cannot complete the installation
    汽车OBD2诊断程序开发 (原文转载,思路很清晰!)
    汽车节温器单片机开发思路
  • 原文地址:https://www.cnblogs.com/hfultrastrong/p/7278527.html
Copyright © 2011-2022 走看看