Java   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了【JavaWeb-jQuery】网站 --- 应用 Ajax,jQuery 实现级联查询大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

网站功能:

  • 网页打开的时候,自动加载省份信息,用户通过选择不同的省份列表值,对应的城市信息也随之变化。

 

网站结构:

 

网站预览:

 

建表语句:

create table `pro` (
    `id` int nOT NULL AUTO_INCREMENT,
    `name` varchar(255) DEFAULT NULL,
    `jiancheng` varchar(255) DEFAULT NULL,
    `shenghui` varchar(255) DEFAULT NULL,
    PRIMARY KEY (`id`)
);

INSERT INTO `pro` VALUES ('1','河北','冀','石家庄');
INSERT INTO `pro` VALUES ('2','山西','晋','太原市');
INSERT INTO `pro` VALUES ('3','内蒙古','蒙','呼和浩特市');
INSERT INTO `pro` VALUES ('4','辽宁','辽','沈阳');
INSERT INTO `pro` VALUES ('5','江苏','苏','南京');
INSERT INTO `pro` VALUES ('6','浙江','浙','杭州');
INSERT INTO `pro` VALUES ('7','安徽','皖','合肥');
INSERT INTO `pro` VALUES ('8','福建','闽','福州');
INSERT INTO `pro` VALUES ('9','江西','赣','南昌');

drop table IF EXISTS `city`;
create table `city` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `provinceid` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
);


INSERT INTO `city` VALUES ('1', '石家庄市', '1');
INSERT INTO `city` VALUES ('2', '秦皇岛', '1');
INSERT INTO `city` VALUES ('3', '保定市', '1');
INSERT INTO `city` VALUES ('4', '张家口', '1');
INSERT INTO `city` VALUES ('5', '南昌市', '9');
INSERT INTO `city` VALUES ('6', '九江市', '9');
INSERT INTO `city` VALUES ('7', '宜春市', '9');
INSERT INTO `city` VALUES ('8', '福州市', '8');
INSERT INTO `city` VALUES ('9', '厦门市', '8');
INSERT INTO `city` VALUES ('10', '泉州市', '8');
INSERT INTO `city` VALUES ('11', '龙岩市', '8');
INSERT INTO `city` VALUES ('12', '太原', '2');
INSERT INTO `city` VALUES ('13', '大同', '2');
INSERT INTO `city` VALUES ('14', '呼和浩特', '3');
INSERT INTO `city` VALUES ('15', '包头', '3');
INSERT INTO `city` VALUES ('16', '呼伦贝尔', '3');

 

index.jsp(网站欢迎资源文件):

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>省市级联查询</title>

    <script type="text/javascript" src="js/jquery-3.6.0.js"></script>
    <script type="text/javascript">
        //自定义函数,用于加载省份数据
        function getData() {
            $.ajax({
                url: "queryprovince",
                dataType: "json",
                success: function (resp) {
                    //删除旧的省份SELEct子对象
                    $("#province").empty();
                    //保留“--请选择--”子对象
                    $("#province").append("<option value=''>" + "--请选择--" + "</option>");
                    //将省份名称打到省份SELEct上
                    $.each(resp, function (i, n) {
                        $("#province").append("<option value='" + n.provinceId + "'>" + n.provinceName + "</option>");
                    });
                }
            });
        }
        
        //自定义函数,用于处理服务端返回的数据
        function callBACk(resp) {
            //清空旧的省份列表子对象
            $("#city").empty();
            $.each(resp,function (i, n) {
                $("#city").append("<option value '" + n.cityId + "'>" + n.cityName + "</option>");
            });
        }

        $(function () {
            //加载省份信息
            getData();

            //省份列表选中值改变时,调用的方法:
            $("#province").change(function () {
                //获取已被选中的列表值
                var id = $("#province>option:SELEcted").val();
                //以 get 方式向服务端发送请求
                $.get("queryCity", {provinceId: iD}, callBACk, "json");

            });

        })

    </script>
</head>
<body>
<p>省市级联查询,使用 Ajax,jQuery</p>
<table border="1px">
    <tr>
        <td>省份:</td>
        <td>
            <SELEct id="province">
                <option value="">--请选择--</option>
            </SELEct>
        </td>
    </tr>

    <tr>
        <td>城市:</td>
        <td>
            <SELEct id="city">
                <option value="">--请选择--</option>
            </SELEct>
        </td>
    </tr>
</table>
</body>
</html>

 

com.burnyouth.util.JdbcUtil(JDBC工具类):

package com.burnyouth.util;

import java.sql.*;

public class JdbcUtil {
    static {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassnotFoundException E) {
            e.printStackTrace();
        }
    }

    private JdbcUtil() {
    }

    public static Connection getConnection() throws SQLException {
        return DriveRMANager.getConnection("jdbc:mysql://localhost:3306/burning_youth"
                , "root", "888");
    }

    public static void close(Connection connection, Statement statement, ResultSet resultSet) {
        if (resultSet != null) {
            try {
                resultSet.close();
            } catch (SQLException E) {
                e.printStackTrace();
            }
        }
        if (statement != null) {
            try {
                statement.close();
            } catch (SQLException E) {
                e.printStackTrace();
            }
        }
        if (connection != null) {
            try {
                connection.close();
            } catch (SQLException E) {
                e.printStackTrace();
            }
        }
    }
}

 

com.burnyouth.entity.province(省份实体类):

package com.burnyouth.entity;

public class province {
    private Integer provinceId;
    private String provinceName;

    public province() {
    }

    public Integer getprovinceId() {
        return provinceId;
    }

    public void setprovinceId(Integer provinceId) {
        this.provinceId = provinceId;
    }

    public String getprovinceName() {
        return provinceName;
    }

    public void setprovinceName(String provinceName) {
        this.provinceName = provinceName;
    }
}

 

com.burnyouth.entity.City(城市实体类):

package com.burnyouth.entity;

public class province {
    private Integer provinceId;
    private String provinceName;
    private String jianCheng;
    private String shengHui;

    public province() {
    }

    public province(Integer provinceId, String provinceName, String jianCheng, String shengHui) {
        this.provinceId = provinceId;
        this.provinceName = provinceName;
        this.jianCheng = jianCheng;
        this.shengHui = shengHui;
    }

    public Integer getprovinceId() {
        return provinceId;
    }

    public void setprovinceId(Integer provinceId) {
        this.provinceId = provinceId;
    }

    public String getprovinceName() {
        return provinceName;
    }

    public void setprovinceName(String provinceName) {
        this.provinceName = provinceName;
    }

    public String getJianCheng() {
        return jianCheng;
    }

    public void setJianCheng(String jianCheng) {
        this.jianCheng = jianCheng;
    }

    public String getShengHui() {
        return shengHui;
    }

    public void setShengHui(String shengHui) {
        this.shengHui = shengHui;
    }
}

 

com.burnyouth.dao.QueryprovinceDao(连接数据库,进行查询操作并返回数据):

package com.burnyouth.dao;

import com.burnyouth.entity.City;
import com.burnyouth.entity.province;
import com.burnyouth.util.JdbcUtil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class QueryprovinceDao {
    //查询数据中所有省份
    public List<province> queryprovince(){
        Connection connection = null;
        PreparedStatement ps = null;
        ResultSet resultSet = null;
        List<province> provinces = new ArrayList<>();
        try {
            connection = JdbcUtil.getConnection();
            //按照id升序输出
            String sql = "SELEct * from pro order by id";
            ps = connection.prepareStatement(sql);
            resultSet = ps.executeQuery();
            while (resultSet.next()) {
                province province = new province();
                province.setprovinceId(resultSet.geTint("id"));
                province.setprovinceName(resultSet.getString("name"));
                provinces.add(province);
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally {
            JdbcUtil.close(connection,ps,resultSet);
        }
        return provinces;

    }

    //查询省份对应的所有城市
    public List<City> queryCity(Integer provinceId){
        Connection connection = null;
        PreparedStatement ps = null;
        ResultSet resultSet = null;
        City city = null;
        List<City> citys = new ArrayList<>();
        try {
            connection = JdbcUtil.getConnection();
            String sql = "SELEct * from city where provinceid=?";
            ps = connection.prepareStatement(sql);
            ps.seTint(1,provinceId);
            resultSet = ps.executeQuery();
            while (resultSet.next()) {
                city = new City();
                city.setCityId(resultSet.geTint("id"));
                city.setCityName(resultSet.getString("name"));
                citys.add(city);
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally {
            JdbcUtil.close(connection,ps,resultSet);
        }
        return citys;

    }
}

 

xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
         xmlns:xsi="http://www.w3.org/2001/XMLscheR_909_11845@a-instance"
         xsi:scheR_909_11845@a@R_874_5352@n="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
         version="5.0">
    <servlet>
        <servlet-name>QueryprovinceServlet</servlet-name>
        <servlet-class>com.burnyouth.controller.QueryprovinceServlet</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>QueryCityServlet</servlet-name>
        <servlet-class>com.burnyouth.controller.QueryCityServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>QueryprovinceServlet</servlet-name>
        <url-pattern>/queryprovince</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>QueryCityServlet</servlet-name>
        <url-pattern>/queryCity</url-pattern>
    </servlet-mapping>

    <!--设置一下欢迎资源文件-->
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

 

com.burnyouth.controller.QueryprovinceServlet(返回 json 格式的省份信息):

package com.burnyouth.controller;

import com.burnyouth.dao.QueryprovinceDao;
import com.burnyouth.entity.province;
import com.fasterxml.jackson.databind.objectMapper;
import jakarta.servlet.*;
import jakarta.servlet.http.*;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

public class QueryprovinceServlet extends httpServlet {
    @Override
    protected void doGet(httpServletrequest request, httpServletResponse responsE) throws ServletException, IOException {
        String json = "";
        QueryprovinceDao dao = new QueryprovinceDao();
        List<province> provinces = new ArrayList<>();
        PrintWriter out = null;

        provinces = dao.queryprovince();
        //将list转为json格式的字符串
        if (provinces != null) {
            //调用Jackson工具库,实现List ---> json
            ObjectMapper objectMapper = new ObjectMapper();
            json = objectMapper.writeValueAsString(provinces);
        }

        //使客户端浏览器使用正确的编辑器解读数据
        response.setContentType("application/json;charset=utf-8");
        out = response.getWriter();
        //输出json数据
        out.write(json);
        out.flush();
        out.close();
    }
}

 

com.burnyouth.controller.QueryCityServlet(根据客户端发送过来的省份 id ,返回对应的城市信息【json 格式】):

package com.burnyouth.controller;

import com.burnyouth.dao.QueryprovinceDao;
import com.burnyouth.entity.City;
import com.burnyouth.entity.province;
import com.fasterxml.jackson.databind.objectMapper;
import jakarta.servlet.*;
import jakarta.servlet.http.*;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

public class QueryCityServlet extends httpServlet {
    @Override
    protected void doGet(httpServletrequest request, httpServletResponse responsE) throws ServletException, IOException {
        String json = "";
        //获取省份id
        String provinceId = request.getParameter("provinceId");
        QueryprovinceDao dao = new QueryprovinceDao();
        List<City> cities = new ArrayList<>();
        PrintWriter out = null;

        cities = dao.queryCity(Integer.valueOf(provinceId));
        //将list转为json格式的字符串
        if (provinceId != null && !"".equals(provinceId.trim())) {
            //调用Jackson工具库,实现List ---> json
            ObjectMapper objectMapper = new ObjectMapper();
            json = objectMapper.writeValueAsString(cities);
        }

        response.setContentType("application/json;charset=utf-8");
        out = response.getWriter();
        //输出json数据
        out.write(json);
        out.flush();
        out.close();
    }
}

 

大佬总结

以上是大佬教程为你收集整理的【JavaWeb-jQuery】网站 --- 应用 Ajax,jQuery 实现级联查询全部内容,希望文章能够帮你解决【JavaWeb-jQuery】网站 --- 应用 Ajax,jQuery 实现级联查询所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: