zoukankan      html  css  js  c++  java
  • 全球疫情爬取及展示_web端

    效果图:

    我在服务器上设置了10点和18点的定时任务,及时爬取疫情数据,数据爬取的相关内容在上一篇博客。

    这里提供国家、省份和城市的筛选,现存确诊、累计确诊、累计治愈和死亡人数的排序。

    1、前端界面用了bootstrap4框架,通过ajax实现数据实时交互。

    <%@page import="java.util.ArrayList"%>
    <%@page import="java.sql.Date"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    	pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>主界面</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet"
    	href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css">
    <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script>
    <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
    <script
    	src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script>
    <script
    	src="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script>
    <script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script>
    </head>
    <script type="text/javascript">
    	function Query(id){
    		var valu,date,type;
    		switch(id){
    		case "btnquerycontury":{
    			valu=$('#querycontury').val();
    			if($('#querydate').val()==null||$('#querydate').val()==""){
    				date="1";
    			}else{
    				date=$('#querydate').val();
    			}
    			type="contury";
    			break;
    		}
    		case "btnquerycity":{
    			valu=$('#querycity').val();
    			if($('#querydate').val()==null||$('#querydate').val()==""){
    				date="1";
    			}else{
    				date=$('#querydate').val();
    			}
    			type="city";
    			break;
    		}
    		case "btnqueryprovince":{
    			valu=$('#queryprovince').val();
    			if($('#querydate').val()==null||$('#querydate').val()==""){
    				date="1";
    			}else{
    				date=$('#querydate').val();
    			}
    			type="province";
    			break;
    		}
    		case "btnquerydate":{
    			valu=$('#dropdown').val();
    			type="date";
    			date=$('#querydate').val();
    			break;
    		}
    		
    		};
    		valu=encodeURI(valu);
    		$.ajax({
    			type : "POST",
    			async : true,
    			url : "Query?valu=" + valu +"&date=" + date+"&type="+type,
    			success : function(data) {
    					var obj = eval(data);
    					var tbody = $('<tbody></tbody>');
    					$(obj).each(
    							function(index) {
    								var val = obj[index];
    								var tr = $('<tr></tr>');
    								tr.append('<td>' + val.state + '</td>' + '<td>'
    										+ val.name + '</td>' + '<td>'
    										+ val.confirm + '</td>' + '<td>'
    										+ val.current + '</td>' + '<td>'
    										+ val.suspect + '</td>' + '<td>'
    										+ val.cured + '</td>' + '<td>'
    										+ val.dead + '</td>' + '<td>'
    										+ val.date + '</td>');
    								tbody.append(tr);
    							});
    					$('#mytable tbody').replaceWith(tbody);
    			},
    			error: function(){
    				alert("查询失败!");
    			}
    		});
    	}
    	function refreshTable(valu, order, updown) {
    
    		$.ajax({
    			type : "POST",
    			async : true,
    			url : "GetData?valu=" + valu + "&order=" + order + "&updown="
    					+ updown,
    			success : function(data) {
    				{
    					var obj = eval(data);
    					var tbody = $('<tbody></tbody>');
    					$(obj).each(
    							function(index) {
    								var val = obj[index];
    								var tr = $('<tr></tr>');
    								tr.append('<td>' + val.state + '</td>' + '<td>'
    										+ val.name + '</td>' + '<td>'
    										+ val.confirm + '</td>' + '<td>'
    										+ val.current + '</td>' + '<td>'
    										+ val.suspect + '</td>' + '<td>'
    										+ val.cured + '</td>' + '<td>'
    										+ val.dead + '</td>' + '<td>'
    										+ val.date + '</td>');
    								tbody.append(tr);
    							});
    					$('#mytable tbody').replaceWith(tbody);
    					if (valu == "city") {
    					
    						$('#wuhannow').replaceWith(
    								$('<p>注:武汉现存:' + obj[0].current + '</p>'));
    						$('#dropdown').val("city");
    						$('#dropdown').text("城市");
    						$('#stat').text("省份");
    						$('#cont').text("城市");
    					} else if (valu == "province") {
    					
    						$('#hubeinow').replaceWith(
    								$('<p>注:湖北现存:' + obj[0].current + '</p>'));
    						$('#dropdown').val("province");
    						$('#dropdown').text("省份");
    						$('#stat').text("大洲");
    						$('#cont').text("省份");
    					} else {
    					
    						$('#dropdown').val("out");
    						$('#dropdown').text("国家");
    						$('#stat').text("大洲");
    						$('#cont').text("国家");
    					}
    				}
    			}
    		});
    	}
    	function refreshChart(valu, order, updown) {
    		//判断是否为排序筛选传来的消息
    		if (valu == "aaa") {	
    			valu = $('#dropdown').val();
    			$('#dropdown_order').val(order);
    			updown=$('#dropdown_updown').val();
    			switch (order) {
    			case "currentt": {
    				$('#dropdown_order').text("现存数排序");
    				break;
    			}
    			case "cured": {
    				$('#dropdown_order').text("治愈数排序");
    				break;
    			}
    			case "confirmm": {
    				$('#dropdown_order').text("总确诊排序");
    				break;
    			}
    			case "dead": {
    				$('#dropdown_order').text("死亡数排序");
    				break;
    			}
    			}
    		}else if(valu=="bbb"){
    			valu = $('#dropdown').val();
    			order = $('#dropdown_order').val();
    			$('#dropdown_updown').val(updown);
    			if(updown=="ASC"){
    				$('#dropdown_updown').text("升序");
    			}else{
    				$('#dropdown_updown').text("降序");
    			}
    		}else{
    			order = $('#dropdown_order').val();
    			updown = $('#dropdown_updown').val();
    		}
    		refreshTable(valu, order, updown);
    		$.ajax({
    			type : "POST",
    			async : true, //异步执行
    			url : "ShowData?q=" + valu+"&order="+order+"&updown="+updown,
    			dataType : "json", //返回数据形式为json
    			success : function(json) {
    				if (json) {
    					myChart.hideLoading();
    					myChart.setOption({
    						xAxis : {
    							data : json.xAxisData
    						},
    						series : json.seriesList
    					});
    				}
    			},
    			error : function(errorMsg) {
    				alert("请求数据失败" + errorMsg);
    			}
    		})
    		myChart.setOption(option);
    
    	}
    </script>
    <body onload="refreshChart('out','currentt','DESC')">
    	<div class="container-fluid" align="center">
    		<div id="echart" style=" 2000px; height: 300px;"></div>
    		<script type="text/javascript">
    			// 基于准备好的dom,初始化echarts实例
    			var myChart = echarts.init(document.getElementById('echart'));
    			// 指定图表的配置项和数据
    			// 初始 option
    			option = {
    				title : {
    					text : '小高的疫情统计——数据从3.20日开始爬取,每天10点、18点更新(app排序bug已修复,稍后提供下载链接)'
    				},
    				tooltip : {},
    				legend : {
    					data : [  ]
    				},
    				xAxis : {
    					type : "category",
    					data : []
    				},
    				yAxis : [ {
    					type : "value",
    
    				} ],
    
    				series : [ {
    					name : "人数",
    					type : "bar",
    					data : []
    				} ]
    
    			};
    			myChart.showLoading();
    		</script>
    		<div class="container" align="center"
    			style="margin-bottom: 20px; margin-left: 200px;" align="center">
    			<!--  //异步查询区域-->
    			<div class="container">
    				<div style=" 100px; float: left; margin-right: 10px;"
    					class="container">
    					<div class="dropdown">
    						<button class="btn btn-primary dropdown-toggle" role="button"
    							id="dropdown" data-toggle="dropdown" aria-haspopup="true"
    							aria-expanded="false" value="out">区域</button>
    
    						<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
    							<button class="dropdown-item" value="out"
    								onClick="refreshChart(this.value,'currentt','DESC')">国外</button>
    							<button class="dropdown-item" value="province"
    								onClick="refreshChart(this.value,'currentt','DESC')">省份(除湖北)</button>
    							<button class="dropdown-item" value="city"
    								onClick="refreshChart(this.value,'currentt','DESC')">城市(除武汉)</button>
    						</div>
    					</div>
    					<br>
    					<div class="dropdown">
    						<button class="btn btn-primary dropdown-toggle" role="button"
    							id="dropdown_order" data-toggle="dropdown" aria-haspopup="true"
    							aria-expanded="false" value="currentt">排序依据</button>
    
    						<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
    							<button class="dropdown-item" value=currentt id="current"
    								onClick="refreshChart('aaa','currentt','DESC')">现存确诊</button>
    							<button class="dropdown-item" value="confirmm" id="confirm"
    								onClick="refreshChart('aaa','confirmm','DESC')">确诊总数</button>
    							<button class="dropdown-item" value="dead" id="dead"
    								onClick="refreshChart('aaa','dead','DESC')">死亡数</button>
    							<button class="dropdown-item" value="cured" id="cured"
    								onClick="refreshChart('aaa','cured','DESC')">治愈数</button>
    						</div>
    					</div>
    					<br>
    					<div class="dropdown">
    						<button class="btn btn-primary dropdown-toggle" role="button"
    							id="dropdown_updown" data-toggle="dropdown" aria-haspopup="true"
    							aria-expanded="false" value="DESC">排序方向</button>
    
    						<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
    							<button class="dropdown-item" value=currentt id="current"
    								onClick="refreshChart('bbb','currentt','DESC')">降序</button>
    							<button class="dropdown-item" value="confirmm" id="confirm"
    								onClick="refreshChart('bbb','confirmm','ASC')">升序</button>
    						</div>
    					</div>
    				</div>
    				<!-- 文字描述 -->
    				<div style="float: left; margin-left: 30px;" align="left">
    					<p id="wuhannow">注:武汉现存:</p>
    					<p id="hubeinow">       湖北现存:</p>
    					<p>国家选项图表中只显示确诊数前50的国家,</p>
    					<p>其他国家请在右侧的查询框查询或自己查下面的表哦~</p>
    				</div>
    			</div>
    			<div class="container"
    				style="margin-bottom: 20px; margin-left: 200px;" align="center">
    				<!-- 查询表格 -->
    						<input type="text" name="city" placeholder="国家查询" id="querycontury"
    							style=" 250px; margin: 10px;">  <input
    							type="button" value="查询" class="btn btn-outline-primary" id="btnquerycontury"
    							style=" 250px;" onClick="Query(this.id)"><br> <input type="text" id="queryprovince"
    							name="province" placeholder="(国内)省份查询:格式:xx省或xx市"
    							style=" 250px; margin: 10px;">  <input id="btnqueryprovince"
    							type="button" value="查询" class="btn btn-outline-primary"
    							style=" 250px;" onClick="Query(this.id)"><br> <input type="text" id="querycity"
    							name="city" placeholder="(国内)城市查询:格式:xx区或xx市"
    							style=" 250px; margin: 10px;">  <input id="btnquerycity"
    							type="button" value="查询" class="btn btn-outline-primary"
    							style=" 250px;" onClick="Query(this.id)"><br> <input type="text" id="querydate"
    							name="city" placeholder="日期查询:格式:yyyy-mm-dd"
    							style=" 250px; margin: 10px;">  <input id="btnquerydate"
    							type="button" value="查询" class="btn btn-outline-primary"
    							style=" 250px;" onClick="Query(this.id)">
    			</div>
    		</div>
    		<!-- 展示表格 -->
    		<table class="table table-hover" id="mytable">
    			<thead>
    				<tr>
    					<td id="stat">大洲</td>
    					<td id="cont">国家</td>
    					<td>累计确诊</td>
    					<td>现存确诊</td>
    					<td>疑似病例</td>
    					<td>累计治愈</td>
    					<td>死亡人数</td>
    					<td>时间</td>
    				</tr>
    			</thead>
    			<tbody></tbody>
    		</table>
    	</div>
    </body>
    </html>
    

     2、后端主要是查询数据库然后发送给前端。

      两个类,一个用了更新图表,一个用了更新表格

      GetData.java

    package com.data.java;
    
    import java.io.IOException;
    import java.lang.Thread.State;
    import java.sql.Connection;
    import java.sql.Date;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;
    
    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.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONArray;
    import com.alibaba.fastjson.JSONObject;
    @WebServlet("/GetData")
    public class GetData extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           
        public GetData() {
            super();
        }
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		
    	}
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		//更新图表
    		response.setHeader("Cache-Control", "no-cache");
    		request.setCharacterEncoding("utf-8");
    		response.setContentType("utf-8");
    		response.setCharacterEncoding("utf-8");
    		String type=request.getParameter("valu");
    		String ordertype=request.getParameter("order");
    		String updown=request.getParameter("updown");
    		try {
    			Connection con =BaseConnection.getConnection("VData");
    			Statement stmt = con.createStatement();
    			Date date = new Date((System.currentTimeMillis()));
    			JSONArray json=new JSONArray();
    			List<ProvinceBean> arr=new ArrayList<>();
    			switch(type) {
    			case "province":{
    				String sql="select * from province where date=(select max(date) from province) order by convert("+ordertype+",SIGNED) "+updown;
    				ResultSet rsst=stmt.executeQuery(sql);
    				while(rsst.next()) {
    					ProvinceBean pr=new ProvinceBean();
    					pr.setConfirm(rsst.getString("confirmm"));
    					pr.setCured(rsst.getString("cured"));
    					pr.setCurrent(rsst.getString("currentt"));
    					pr.setDate(rsst.getDate("date").toString());
    					pr.setDead(rsst.getString("dead"));
    					pr.setName(rsst.getString("name"));
    					pr.setState("亚洲");
    					pr.setSuspect(rsst.getString("suspect"));
    					arr.add(pr);
    				}
    				break;
    			}
    			case "city":{
    				String sql="select * from city where date=(select max(date) from city) order by convert("+ordertype+",SIGNED) "+updown;
    				ResultSet rsst=stmt.executeQuery(sql);
    				while(rsst.next()) {
    					ProvinceBean pr=new ProvinceBean();
    					pr.setConfirm(rsst.getString("confirmm"));
    					pr.setCured(rsst.getString("cured"));
    					pr.setCurrent(rsst.getString("currentt"));
    					pr.setDate(rsst.getDate("date").toString());
    					pr.setDead(rsst.getString("dead"));
    					pr.setName(rsst.getString("name"));
    					pr.setState(rsst.getString("province"));
    					pr.setSuspect(rsst.getString("suspect"));
    					arr.add(pr);
    				}
    				break;
    			}
    			case "out":{
    				String sql="select * from contury where date=(select max(date) from contury) order by convert("+ordertype+",SIGNED) "+updown;
    				System.out.println(sql);
    				ResultSet rsst=stmt.executeQuery(sql);
    				while(rsst.next()) {
    					ProvinceBean pr=new ProvinceBean();
    					pr.setConfirm(rsst.getString("confirmm"));
    					pr.setCured(rsst.getString("cured"));
    					pr.setCurrent(rsst.getString("currentt"));
    					pr.setDate(rsst.getDate("date").toString());
    					pr.setDead(rsst.getString("dead"));
    					pr.setName(rsst.getString("provincename"));
    					pr.setState(rsst.getString("continents"));
    					pr.setSuspect(rsst.getString("suspect"));
    					arr.add(pr);
    				}
    				break;
    			}
    			}
    			BaseConnection.close(stmt, con);
    			//通过print将json发送到前端
    			json=JSONArray.parseArray(JSON.toJSONString(arr));
    			System.out.println(json);
    			response.getWriter().print(json);
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    
    }
    

      ShowData.java

    package com.data.java;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.Connection;
    import java.sql.Date;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    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.alibaba.fastjson.JSONObject;
    
    @WebServlet("/ShowData")
    public class ShowData extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    
    	public ShowData() {
    		super();
    	}
    
    	protected void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    
    	}
    
    	protected void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		try {
    			response.setHeader("Cache-Control", "no-cache");
    			String valu = request.getParameter("q");
    			String order=request.getParameter("order");
    			String updown=request.getParameter("updown");
    			System.out.println(valu);
    			if (valu != null) {
    
    			}
    			request.setCharacterEncoding("utf-8");
    			response.setContentType("utf-8");
    			response.setCharacterEncoding("utf-8");
    
    			PrintWriter printWriter = response.getWriter();
    			List<String> xdata = new ArrayList<>();
    			List<String> data = new ArrayList<>();
    			List<com.alibaba.fastjson.JSONObject> seriesList = new ArrayList<com.alibaba.fastjson.JSONObject>();
    
    			Connection con=BaseConnection.getConnection("VData");
    			Statement stmt=con.createStatement();
    			Date date = new Date((System.currentTimeMillis()));
    			System.out.println(date);
    			System.out.println(111);
    			//省
    			if (valu.equals("province")) {
    				System.out.println("select * from province where date=(select max(date) from province) order by convert("+order+",SIGNED) "+updown);
    				ResultSet rsst = stmt.executeQuery(
    						"select * from province where date=(select max(date) from province) order by convert("+order+",SIGNED) "+updown);
    				rsst.next();
    				rsst.next();
    				while (rsst.next()) {
    					boolean flag = true;
    					for (int i = 0; i < data.size(); i++) {
    						if (xdata.get(i).equals(rsst.getString("name"))) {
    							flag = false;
    						}
    					}
    					if (flag) {
    						xdata.add(rsst.getString("name"));
    						data.add(rsst.getString(order));
    					}
    				}
    				Series series = new Series("现存确诊数", "TYPE_BAR", data);
    				com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject();
    				jsonObject.put("name", series.toName());
    				jsonObject.put("type", "bar");
    				jsonObject.put("data", series.data);
    				seriesList.add(jsonObject);
    				JSONObject jsonObject1 = new JSONObject();
    
    				jsonObject1.put("xAxisData", xdata);
    
    				jsonObject1.put("seriesList", seriesList);
    
    				// 发送给前台
    				printWriter.write(jsonObject1.toString());
    				printWriter.flush();
    				printWriter.close();
    				rsst.close();
    				stmt.close();
    				con.close();
    			}
    			// 国外数据
    			else if (valu.equals("out")) {
    				request.setCharacterEncoding("utf-8");
    				response.setContentType("utf-8");
    				response.setCharacterEncoding("utf-8");
    				System.out.println("select * from contury where date=(select max(date) from contury) order by convert("+order+",SIGNED) "+updown);
    				ResultSet rsst = stmt.executeQuery(
    						"select * from contury where date=(select max(date) from contury) order by convert("+order+",SIGNED) "+updown);
    				
    			while (rsst.next()) {
    					boolean flag = true;
    					for (int i = 0; i < data.size(); i++) {
    						if (xdata.get(i).equals(rsst.getString("provincename"))) {
    							flag = false;
    						}
    					}
    					if (flag) {
    						xdata.add(rsst.getString("provincename"));
    						data.add(rsst.getString(order));
    					}
    				}
    				Series series = new Series("现存确诊数", "TYPE_BAR", data);
    				com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject();
    				jsonObject.put("name", series.toName());
    				jsonObject.put("type", "bar");
    				jsonObject.put("data", series.data);
    				seriesList.add(jsonObject);
    				JSONObject jsonObject1 = new JSONObject();
    
    				jsonObject1.put("xAxisData", xdata);
    
    				jsonObject1.put("seriesList", seriesList);
    
    				// 发送给前台
    				printWriter.write(jsonObject1.toString());
    				printWriter.flush();
    				printWriter.close();
    				rsst.close();
    				stmt.close();
    				con.close();
    			}
    			//市
    			else if(valu.equals("city")){
    				System.out.println("select * from city where date=(select max(date) from city) order by convert("+order+",SIGNED) "+updown);
    				ResultSet rsst = stmt.executeQuery(
    						"select * from city where date=(select max(date) from city) order by convert("+order+",SIGNED) "+updown);
    				rsst.next();
    				while (rsst.next()) {
    					boolean flag = true;
    					for (int i = 0; i < data.size(); i++) {
    						if (xdata.get(i).equals(rsst.getString("name"))) {
    							flag = false;
    						}
    					}
    					if (flag) {
    						xdata.add(rsst.getString("name"));
    						data.add(rsst.getString(order));
    					}
    				}
    				Series series = new Series("现存确诊数", "TYPE_BAR", data);
    				com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject();
    				jsonObject.put("name", series.toName());
    				jsonObject.put("type", "bar");
    				jsonObject.put("data", series.data);
    				seriesList.add(jsonObject);
    				JSONObject jsonObject1 = new JSONObject();
    				
    				jsonObject1.put("xAxisData", xdata);
    				System.out.println(seriesList);
    				
    				jsonObject1.put("seriesList", seriesList);
    				System.out.println((jsonObject1.get("seriesList")));
    				// 发送给前台
    				printWriter.write(jsonObject1.toString());
    				printWriter.flush();
    				printWriter.close();
    				rsst.close();
    				stmt.close();
    				con.close();
    			
    			}
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    //		request.setAttribute("data", data);
    //		request.getRequestDispatcher("echart222.jsp").forward(request, response);
    
    	}
    }
    

      这个用来实现查询

    package com.data.java;
    
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.Date;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;
    
    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.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONArray;
    
    @WebServlet("/Query")
    public class Query extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    
    	public Query() {
    		super();
    	}
    
    	protected void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    	}
    
    	protected void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		response.setHeader("Cache-Control", "no-cache");
    		request.setCharacterEncoding("utf-8");
    		response.setContentType("utf-8");
    		response.setCharacterEncoding("utf-8");
    		String valu = request.getParameter("valu");
    		String date = request.getParameter("date");
    		String type = request.getParameter("type");
    		System.out.println(valu);
    		try {
    			Connection con=BaseConnection.getConnection("VData");
    			Statement stmt=con.createStatement();
    			JSONArray json = new JSONArray();
    			List<ProvinceBean> arr = new ArrayList<>();
    			switch (type) {
    			case "province": {
    				String sql;
    				if (!date.equals("1")) {
    					sql = "select * from province where date='" + date + "' and name='" + valu + "'";
    				} else {
    					sql = "select * from province where name='" + valu + "'";
    				}
    
    				ResultSet rsst = stmt.executeQuery(sql);
    				while (rsst.next()) {
    					ProvinceBean pr = new ProvinceBean();
    					pr.setConfirm(rsst.getString("confirmm"));
    					pr.setCured(rsst.getString("cured"));
    					pr.setCurrent(rsst.getString("currentt"));
    					pr.setDate(rsst.getDate("date").toString());
    					pr.setDead(rsst.getString("dead"));
    					pr.setName(rsst.getString("name"));
    					pr.setState("亚洲");
    					pr.setSuspect(rsst.getString("suspect"));
    					arr.add(pr);
    				}
    				break;
    			}
    			case "city": {
    				String sql;
    				if (!date.equals("1")) {
    					sql = "select * from city where date='" + date + "' and name='" + valu + "'";
    				} else {
    					sql = "select * from city where name='" + valu + "'";
    				}
    				ResultSet rsst = stmt.executeQuery(sql);
    				while (rsst.next()) {
    					ProvinceBean pr = new ProvinceBean();
    					pr.setConfirm(rsst.getString("confirmm"));
    					pr.setCured(rsst.getString("cured"));
    					pr.setCurrent(rsst.getString("currentt"));
    					pr.setDate(rsst.getDate("date").toString());
    					pr.setDead(rsst.getString("dead"));
    					pr.setName(rsst.getString("name"));
    					pr.setState(rsst.getString("province"));
    					pr.setSuspect(rsst.getString("suspect"));
    					arr.add(pr);
    				}
    				rsst.close();
    				break;
    			}
    			case "contury": {
    				String sql;
    				if (!date.equals("1")) {
    					sql = "select * from contury where date='" + date + "' and provincename='" + valu + "'";
    				} else {
    					sql = "select * from contury where provincename='" + valu + "'";
    				}
    				ResultSet rsst = stmt.executeQuery(sql);
    				while (rsst.next()) {
    					ProvinceBean pr = new ProvinceBean();
    					pr.setConfirm(rsst.getString("confirmm"));
    					pr.setCured(rsst.getString("cured"));
    					pr.setCurrent(rsst.getString("currentt"));
    					pr.setDate(rsst.getDate("date").toString());
    					pr.setDead(rsst.getString("dead"));
    					pr.setName(rsst.getString("provincename"));
    					pr.setState(rsst.getString("continents"));
    					pr.setSuspect(rsst.getString("suspect"));
    					arr.add(pr);
    				}
    				rsst.close();
    				break;
    			}
    			case "date": {
    				if (valu.equals("out")) {
    					valu = "contury";
    				}
    				String sql = "select * from " + valu + " where date='" + date + "'";
    				ResultSet rsst = stmt.executeQuery(sql);
    				while (rsst.next()) {
    					ProvinceBean pr = new ProvinceBean();
    					pr.setConfirm(rsst.getString("confirmm"));
    					pr.setCured(rsst.getString("cured"));
    					pr.setCurrent(rsst.getString("currentt"));
    					pr.setDate(rsst.getDate("date").toString());
    					pr.setDead(rsst.getString("dead"));
    					pr.setName(rsst.getString("provincename"));
    					pr.setState(rsst.getString("continents"));
    					pr.setSuspect(rsst.getString("suspect"));
    					arr.add(pr);
    				}
    				rsst.close();
    				break;
    			}
    			}
    			stmt.close();
    			con.close();
    			// 通过print将json发送到前端
    			json = JSONArray.parseArray(JSON.toJSONString(arr));
    			System.out.println(json);
    			response.getWriter().print(json);
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    
    }
    

      

  • 相关阅读:
    nohup 后台启动程序,并输出到指定日志
    linux-Centos7安装python3并与python2共存
    Notepad++中Python脚本运行出现语法错误:IndentationError: unindent does not match any outer indentation level
    使用pip出现 cannot import name "main"
    Notepad++ 快捷键
    Notepad++ ssh NppFTP链接linux
    git 密钥
    查看oracle数据库锁
    Linux利用PROMPT_COMMAND实现操作记录的功能
    openstack-queens
  • 原文地址:https://www.cnblogs.com/XiaoGao128/p/12577191.html
Copyright © 2011-2022 走看看