题目要求:
要求开发一款移动端的全世界疫情实时查询系统。
要求将前两周的项目合并为一个完整的项目。
采用统一的数据库。(建议MySQL数据库)
实现从数据采集、数据存储、数据查询(WEB端和移动端)一体全世界实时疫情查询系统。
以本机数据库为服务器端,web端和移动端连接远程数据库实现数据共享,要求数据库表格式统一化。
查询显示当前最新时间的数据,可以查询任一时间任一地点的数据。该系统要求在服务器端发布,可以通过IP地址访问。
这是我们这一周的课堂任务,一开始看到这个题目时,我感到非常的无力,不知道从何处下手,要做一个app,但是如何从android中获取爬到的数据是一个疑问?
1.首先,先获取数据,我先是通过python爬虫获取全球的疫情情况,并保存在Mysql数据库中,代码见上篇博客,就不在此处添加了。
2.数据获取,现在我还没有云服务器,只能怪通过tomcat进行发布,编写java代码,通过selvlet和数据库操作代码获取数据,并发布在Tomcat上
下面是Selvlet的代码:(数据库代码此处省略)
1 package yiqing; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 import java.util.ArrayList; 6 7 import javax.servlet.ServletException; 8 import javax.servlet.annotation.WebServlet; 9 import javax.servlet.http.HttpServlet; 10 import javax.servlet.http.HttpServletRequest; 11 import javax.servlet.http.HttpServletResponse; 12 13 import DBUtil.dbutil; 14 15 /** 16 * Servlet implementation class Selvlet 17 */ 18 @WebServlet("/Selvlet") 19 public class Selvlet extends HttpServlet { 20 private static final long serialVersionUID = 1L; 21 22 /** 23 * @see HttpServlet#HttpServlet() 24 */ 25 public Selvlet() { 26 super(); 27 // TODO Auto-generated constructor stub 28 } 29 30 /** 31 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 32 */ 33 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 34 // TODO Auto-generated method stub 35 response.setContentType("text/html;charset=utf-8"); 36 request.setCharacterEncoding("utf-8"); 37 response.setCharacterEncoding("utf-8"); 38 PrintWriter outPrintWriter =response.getWriter(); 39 String date= request.getParameter("date"); 40 //String date="2020-03-20"; 41 System.out.println(date); 42 ArrayList<String> list=new ArrayList<>(); 43 list=dbutil.search(date); 44 System.out.println(list); 45 outPrintWriter.write(list.toString()); 46 outPrintWriter.flush(); 47 outPrintWriter.close(); 48 } 49 50 /** 51 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 52 */ 53 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 54 // TODO Auto-generated method stub 55 doGet(request, response); 56 } 57 58 }
第三步,也是最重要的一步,在android中就进行http访问,刚刚发布的地址,来获取疫情数据,
代码参考:https://www.jianshu.com/p/5eee1ef02700
大家在获取到数据后可对其进行换分操作,存放到ListView里面,方便查看
下面是我的完成结果截屏,可供大家参考:
本次任务的PSP表格: