一、前言

此次培训,是为期三天的网上培训。最终的目的是制作出疫情地图。首先我们来看看主要的讲课内容大纲。

  Day1

    |-Java语法学习(个人感觉讲得还可以,主要围绕本次培训作出的讲解,没有像网上的基础课程那样,长篇大论,有基础的童鞋可以看看复习一下的)

    |-游戏化内存分析(印象中是拿了植物大战僵尸这个单机游戏来讲解的,通过抓包的形式,给我们介绍了太阳【这个游戏的游戏金币】在程序开发中就是一个变量)

    |-制作自动关机程序

  Day2

    |-IDEA的使用(竟然在培训班中奖了,今天就来个IDEA写程序)

    |-网络资源定位详解

    |-疫情数据分析读取

    |-对话图灵机器人

    |-手机短信发送

  Day3

    |-疫情地图展示

    |-阿里云服务器搭建

    |-微信公众号入口

二、IDEA的使用

    1、首先,我们到IDEA官网注册账号,然后下载我们的IDEA。这步我们跳过吧,官网虽然英文居多,但是我们可以用谷歌浏览器的自带翻译功能辅助,也相信各位童鞋能下载下来。

    2、我们的安装包下载后,也是傻瓜式安装,基本就是先选路径,然后选运行的JDK位数(我们1.7以后好像都是64位了,所以选择64位),然后选安装的插件,完成后,差不多就是登陆激活的账号密码(账号密码谁都可以注册,重要的是我们要有激活码激活的账号)

    3、安装好后,我们就先来写个HelloWorld(这里说一下IDEA和VScode的一个特点:前一次关闭软件的界面,这一次打开会显示那个界面)

      |-我们选择:File→New→Project

    |-新建空项目

    |-下一步,然后点finish(完成)

    |-这个新版本,会在点击完成项目后,提示你是在当前项目同一窗口展示,还是新窗口展示,我们这里试试点New Window

    |-点击New Window后会新建一个新窗口和一个新的弹窗Modules,我们点击Modules选项上的“+”,然后点击New Module,会有一个新弹窗

    |-IDEA真的越来越完善,这一步以前的要手动选JDK的安装路径,我们这里新版本,只要打开后,点击JAVA,点击Module SDK的下拉框,会提示你之前在环境变量配好的Java1.8的

    |-选择好JDK后,我们点下面Next,到这一步,我们修改一下Module Name,然后点Finish就完成配置了

    |-然后上一个弹窗,就出现了配置好的一些数据,我们直接点下面的OK就可以了

    |-到上面为止,我们只创建了项目的工程文件,class还没创建的

    |-接着我们要去新建一个类,在我们eclipse新建类的时候,我们有新建包这个操作,而在我们IDEA中,这一操作我们分开来,先新建包,然后新建类

    |-这里,我们新建好类后,我们写个HelloWorld来学习一下

    |-好的,没有问题,接下来,我们看看我们的class文件现在保存到哪里了,我们可以看一下Hello头顶上的E盘路径

    |-又是新版本更新的功能,我们直接点开上面链接,会有一个弹窗,我们直接点到我们包创建的最后

    |-好了,我们目前为止,基本的IDEA的基本操作就完成了,下面我们回顾一下上述操作

①创建一个空项目(sendmessage)
②创建一个新模块(sendmessage)
③在sendmessage模块下的Src下创建一个包(com.baidu.CionDa.SendMessage)
④在com.baidu.CionDa.SendMessage包下新建一个类(SendMessage)
⑤在SendMessage类中写代码
⑥在idea中执行程序

    |-然后我们看看IDEA中项目结构:

    项目project ->模块 ->包 ->java文件

    |-接着我们了解一下基本的IDEA操作

      |-眼神不好,修改字体:File -> Setting ->Font ->Size(修改16-20基本OK)

      |-IDEA中的快捷键

        |-psvm回车产生public static void main(String[] args){}方法

        |-sout回车产生System.out.println();

        |-Ctrl+Alt+Space(空格键)我们可以通过这个快捷键实现:内容提示,代码补全等

        |-注释:

          单行:选中代码,Ctrl+/,再来一次就是取消单行注释

          多行:选中代码,Ctrl+Shift+/,再来一次就是取消多行注释

        |-格式化:Ctrl+Alt+L

        |-IDEA中模块操作

          新建模块(首先,我们的新建模块在前面内容已经涉及到,我们这里跳过)

          删除模块(模块只在IDEA删除,在原先的保存路径并没有删除,若要彻底删除,需要自行前往保存路径删除)

          导入模块

删除模块:

导入模块

三、网络资源定位详解

  网络资源又叫URL(统一资源定位符Uniform Resource Locator),通俗地讲就是我们的网址

  在万维网上(world wide web) 每一个信息和资源都有统一且唯一的地址

  |-网址的组成部分:

通信协议://域名:端口号/虚拟路径?参数列表#锚点

  |-通信协议:

传输速率控制(通讯过程中,端与端的传输速度);

传输编码控制(通讯过程中,端与端的交流要读得懂,若我讲日语,你听不懂,那就没办法交流下去了);

出错控制(通讯过程中,端与端之间要是因为网络,人为等原因会中断通讯)等

  |-域名:ip地址的别名

  ip地址:是计算机在互联网中的唯一表示 (公网ip)

  |-端口号:

范围:0-65535之间

http协议访问时,可以忽略端口号,自动寻找80

https协议访问时,可以忽略端口号,自动寻找443

  |-参数列表(重要):

访问网络时,给服务器发送的参数内容.

参数列表由多个参数组成, 参数与参数之间使用&连接

每一个参数又由参数名称和参数内容组成, 名称与内容之间使用=号连接

对下面URL(网址进行解释)

https://www.cnblogs.com/raoqinglong/p/13056439.html

该网址传输协议是https协议,访问时会自动寻址443,域名为www.cnblogs.com,虚拟路径raoqinglong/p/13056439

很多人就问:为什么上面的没有参数内容?因为我们要向服务器发送参数才需要的。像上面的URL一样,我们只是去读取,去调用而言,没有要上传的意思

https://account.cnblogs.com/signup?returnUrl=https%3A%2F%2Fwww.cnblogs.com%2F

而这个网址是同一个网址的,我们博客园的注册地址,这个?后面的就是我们的参数,参数名是returnUrl,参数内容就是https%3A%2F%2Fwww.cnblogs.com%2F

我们可能看不懂这个参数内容,没关系,我们去解析一下,百度搜索UTF-8在线转换,你就会得到解析上面https%3A%2F%2Fwww.cnblogs.com%2F这个网址就是https://www.cnblogs.com/

  |-锚点:

一般在一些购物网站,篇幅比较长,还有模块化的页面用到,用于快速跳转到同一页面的不同标题/模块下。例如我的博文在电脑上看

但是很可惜,不太完善,不会跳标题,有点小尴尬。然后,对于URL的解释分析,就到这里了

四、疫情数据分析读取

在读取疫情数据前,我们先去学习一下JAVA是怎样读取URL的

下面有要标准的使用流程

  1. 标准使用流程:
  2. //1. 创建一个URL类的对象url
  3. URL url = new URL("网址");
  4. //2. 通过URL类的对象url打开网络连接 , 并得到连接对象conn
  5. URLConnection conn = url.openConnection();
  6. //3. 通过连接对象 , 得到用于读取网页内容的输入流 is
  7. InputStream is = conn.getInputStream();
  8. //4. 将上述的字节流is 装饰为字符流 , 将字符流再装饰为一次能读取一行的字符流br
  9. BufferedReader br = new BufferedReader(new InputStreamReader(is));
  10. //若我们的读取字符乱码,我们可以把4换成下面这一句
  11. BufferedReader br = new BufferedReader(new InputStreamReader(is,"UTF-8"));
  12. //5. 通过字符流br,读取一行内容,并将内容存储到变量text中
  13. String text = br.readLine();
  14. //6. 可以将读取到的内容text 输出显示到控制台
  15. System.out.println(text);

编写完上面代码,通常数据类型的位置会出现红线 (需要导包) 解决方案:鼠标悬停在红线位置,点击要导入的包即可。

本节任务需要导入的包:

1. java.io.xxx

2. java.net.xxx

3. java.util.xxx

导完包后,还会出现红线,我们需要抛出异常

我们来一个读取百度首页的代码:

  1. package com.baidu.cionda.readbaidu;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.io.InputStreamReader;
  7. import java.net.URL;
  8. import java.net.URLConnection;
  9.  
  10. public class ReadBaidu {
  11. public static void main(String[] args) throws IOException {
  12. //1. 创建一个URL类的对象url
  13. URL url = new URL("https://www.baidu.com");
  14. //2. 通过URL类的对象url打开网络连接 , 并得到连接对象conn
  15. URLConnection conn = url.openConnection();
  16. //3. 通过连接对象 , 得到用于读取网页内容的输入流 is
  17. InputStream is = conn.getInputStream();
  18. //4. 将上述的字节流is 装饰为字符流 , 将字符流再装饰为一次能读取一行的字符流br
  19. BufferedReader br = new BufferedReader(new InputStreamReader(is));
  20. //若我们的读取字符乱码,我们可以把4换成下面这一句
  21. //BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
  22. //5. 通过字符流br,读取一行内容,并将内容存储到变量text中
  23. //我们这里来读取四行看看
  24. String text1 = br.readLine();
  25. String text2 = br.readLine();
  26. String text3 = br.readLine();
  27. String text4 = br.readLine();
  28. //6. 可以将读取到的内容text 输出显示到控制台
  29. System.out.println(text1);
  30. System.out.println(text2);
  31. System.out.println(text3);
  32. System.out.println(text4);
  33. }
  34. }
  35.  
  36. /* |-注释:
  37.  
  38.           单行:选中代码,Ctrl+/,再来一次就是取消单行注释
  39.  
  40.           多行:选中代码,Ctrl+Shift+/,再来一次就是取消多行注释
  41.  
  42.         |-格式化:Ctrl+Alt+L
  43. |-抛出异常:Alt+Shift+Enter
  44.         |-IDEA中模块操作
  45.  
  46.           新建模块(首先,我们的新建模块在前面内容已经涉及到,我们这里跳过)
  47.  
  48.           删除模块(模块只在IDEA删除,在原先的保存路径并没有删除,若要彻底删除,需要自行前往保存路径删除)
  49.  
  50.           导入模块*/

在IDEA我们居然没乱码,要是我们移植到Eclipse就不一样了,上才艺:

为什么会这样呢,就是我们上面提到的UTF-8,我们不同公司的开发项目和使用编码不同,但是UTF-8是我们通用的国际编码,里面包含了中文和英文等国际语言,我们也可以通过上面UTF-8转换网站,转换“更多产品”的乱码看看

我们把上面的百度地址换成我们的https://zaixianke.com/yq/all,在这个网址我们可以获取疫情的实时数据

五、对话图灵机器人

原理跟我们获取疫情数据很相似

首先我们要拿到智能机器人API

服务器地址: https://api.jisuapi.com/iqa/query

参数列表 appkey:秘钥,值为:62958a3a6ef3c56d

question:与智能机器人的聊天内容 ,例如:北京天气

使用方式:

那在我们的代码怎么玩呢?上才艺

  1. package com.CionDa.readbaidu;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.io.InputStreamReader;
  7. import java.net.MalformedURLException;
  8. import java.net.URL;
  9. import java.net.URLConnection;
  10. import java.net.URLEncoder;
  11.  
  12. public class ReadBaidu {
  13.  
  14. public static void main(String[] args) throws IOException {
  15. // TODO Auto-generated method stub
  16. //定义appkey变量
  17. String appkey = "62958a3a6ef3c56d";
  18. //我们的编译器是Eclipse的话,不能直接发中文,所以要转UTF-8
  19. String para = URLEncoder.encode("讲个笑话","UTF-8");
  20. //1. 创建一个URL类的对象url
  21. URL url = new URL("https://api.jisuapi.com/iqa/query?appkey="+appkey+"&question="+para);
  22. //2. 通过URL类的对象url打开网络连接 , 并得到连接对象conn
  23. URLConnection conn = url.openConnection();
  24. //3. 通过连接对象 , 得到用于读取网页内容的输入流 is
  25. InputStream is = conn.getInputStream();
  26. //4. 将上述的字节流is 装饰为字符流 , 将字符流再装饰为一次能读取一行的字符流br
  27. //BufferedReader br = new BufferedReader(new InputStreamReader(is));
  28. //若我们的读取字符乱码,我们可以把4换成下面这一句
  29. BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
  30. //5. 通过字符流br,读取一行内容,并将内容存储到变量text中
  31. //我们这里来读取四行看看
  32. String text1 = br.readLine();
  33.  
  34. //6. 可以将读取到的内容text 输出显示到控制台
  35. System.out.println(text1);
  36.  
  37. }
  38.  
  39. }

    |-乱码处理 :读取服务器数据乱码处理

  1. 计算机存储的都是数字
  2. 编码表:ASCII
  3. 65:A
  4. 66:B
  5. 67:C
  6. 97:a
  7. 简体中文国标系列编码:
  8. GBK GB2312 GB18030
  9. UTF-8 unicode
  10. 处理的代码如下:
  11. //在is装饰为字符流时,指定字符集UTF-8
  12. BufferedReader br = new BufferedReader(new InputStreamReader(is,"UTF-8"));

参数乱码的处理

  1. 将发送给服务器的中文进行URL编码即可
  2. URL编码: 将中文转换为%+英文字母+阿拉伯数字
  3. String para = URLEncoder.encode("中文文字","UTF-8");

六、手机短信发送

短信API 短信API服务器地址: https://api.jisuapi.com/sms/send

参数列表

appkey:秘钥,值为:62958a3a6ef3c56d

mobile:接收验证码的手机号

content:短信内容,必须使用提供的模板,模板中能修改的只有六位验证码,模板如下:

恭喜你,作业已完成!验证码是:666666。如非本人操作,请忽略本短信!【开课吧新职课】

具体使用与上面控制图灵机器人类似,我们来直接上代码

  1. package com.CionDa.sendmessage;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.io.InputStreamReader;
  7. import java.net.URL;
  8. import java.net.URLConnection;
  9. import java.net.URLEncoder;
  10. import java.util.Scanner;
  11.  
  12. public class SendMessage {
  13.  
  14. public static void main(String[] args) throws IOException {
  15. // TODO Auto-generated method stub
  16.  
  17. int identifyingcode = (int) ((Math.random()*9+1)*100000);
  18. String para = URLEncoder.encode("恭喜你,作业已完成!验证码是:"+identifyingcode+"。如非本人操作,请忽略本短信!【开课吧新职课】","UTF-8");
  19. String appkey ="62958a3a6ef3c56d";
  20. System.out.println("请输入手机号:");
  21. Scanner input = new Scanner(System.in);
  22. String moblie = input.nextLine();
  23. //1. 创建一个URL类的对象url
  24. URL url = new URL("https://api.jisuapi.com/sms/send?appkey="+appkey+"&mobile="+moblie+"&content="+para);
  25. //2. 通过URL类的对象url打开网络连接 , 并得到连接对象conn
  26. URLConnection conn = url.openConnection();
  27. //3. 通过连接对象 , 得到用于读取网页内容的输入流 is
  28. InputStream is = conn.getInputStream();
  29. //4. 将上述的字节流is 装饰为字符流 , 将字符流再装饰为一次能读取一行的字符流br
  30. BufferedReader br = new BufferedReader(new InputStreamReader(is,"UTF-8"));
  31. //5. 通过字符流br,读取一行内容,并将内容存储到变量text中
  32. String text = br.readLine();
  33. //6. 可以将读取到的内容text 输出显示到控制台
  34. System.out.println(text);
  35.  
  36. }
  37.  
  38. }

    

Java培训Day02——制作疫情地图(一)的更多相关文章

  1. Java培训Day01——制作疫情地图(一)

    一.前言 此次培训,是为期三天的网上培训.最终的目的是制作出疫情地图.首先我们来看看主要的讲课内容大纲. Day1 |-Java语法学习(个人感觉讲得还可以,主要围绕本次培训作出的讲解,没有像网上的基 ...

  2. 数据可视化之 图表篇(二)如何用Power BI制作疫情地图?

    丁香园制作的这个地图可视化,相信大家每天都会看好几遍,这里不讨论具体数据,仅来探讨一下PowerBI地图技术. 这个地图很简洁,主要有三个特征: 1,使用着色地图,根据数据自动配色 2,只显示中国地图 ...

  3. 如何利用excel中的数据源制作数据地图

    关于这个问题,制作数据地图的方法已不新奇,总体来说有这么几类方案: 一类方案:直接在excel里制作 优势:个人小数据量应用较为方便简单 缺点:需要熟悉VBA,且更强大的功能对VBA水平要求较高 1. ...

  4. 动力节点Java培训告诉你Java线程的多功能用法

    现在的java开发可谓是八仙过海各显神通啊!遥想当下各种编程语言萎靡不振,而我Java开发异军突起,以狂风扫落叶之态,作为Java培训行业的黄埔军校,为了守护Java之未来,特意总结了一些不被人所熟知 ...

  5. 北京Java培训机构哪个好

    又是一年暑期生活的来临,对于即将走出校园的实习生而言,培训潮与就业潮不约而至,培训行业的就业课程开班也如火如荼地进行着. 一直以来,计算机专业的毕业生都会作为一股庞大的生力军涌入社会各个岗位.就目前的 ...

  6. Java 征途:行者的地图 (转)

    http://www.cnblogs.com/mindwind/p/5251430.html Java 征途:行者的地图   前段时间应因缘梳理了下自己的 Java 知识体系, 成文一篇望能帮到即将走 ...

  7. 如何使用highmaps制作中国地图

    如何使用highmaps制作中国地图 文章目录 Highmaps 所需文件 地图初始化代码 highmaps 渲染讲解 highmaps 中国各城市坐标的json文件 highmaps 线上DEMO ...

  8. DEDE5.7如何制作网站地图?

    DEDE用的人很多,可能大家在使用的过程中会碰到一些问 题,这很正常的,今天我们来讲讲DEDE5.7如何制作网站地图,其实网站地图分两种,一种做给网友看的,方便网友可以方便地找到自己想浏览的内容,另外 ...

  9. 用SCMD2.0.8.0汉化版制作OB地图简易教程

    [综合] [复制链接]     Fenix_king       153 主题 0 好友 1万 积分 金星 该用户从未签到 星币 6392 水晶 0 星望 22 精华 0 发消息 电梯直达 楼主   ...

随机推荐

  1. 2018-06-19 Javascript 基础2

    js变量类型测试:typeof()->五种 (number,string,boolean,object,undefined): instanceof->检查某个对象是否是某个构造器产生的 ...

  2. Codeforces 1272E (Nearest Opposite Parity,反向建边)

    题意:给你n个数,每个数的值为a[i],每个点可以从i这号点跳转至(i - a[i]) 或 (i + a[i])点,点的范围为[1,n],然后问的是从偶数点跳至奇数点,从奇数点跳至偶数点的最少次数是多 ...

  3. STM32学习笔记——USART

    STM32的USART组件支持异步.同步.单线半双工.多处理器.IrDA.LIN.SmartCard等模式,本文介绍的是异步即UART模式. 总线通信有三种模型:轮询.中断和DMA.DMA对我来说是陌 ...

  4. PAT 1006 Sign In and Sign Out (25分) 字符串比较

    题目 At the beginning of every day, the first person who signs in the computer room will unlock the do ...

  5. 学会阅读源码后,我觉得自己better了

    我有一个大学同学,名叫石磊,我在之前的文章里提到过几次,我们俩合作过很多项目.只要有他在,我就特别放心,因为几乎所有难搞的问题,到他这,都能够巧妙地化解.他给我印象最深刻的一句话就是,"有啥 ...

  6. 【雕爷学编程】MicroPython动手做(01)——春节后入手了K210开发板

    Python的开放.简洁.黏合正符合了现发展阶段对人工智能.大数据分析.可视化.各种平台程序协作产生了快速的促进作用.自Python3的发布到现在已有五六年的时间,从刚发布的反对声音到慢慢被接受与喜欢 ...

  7. 总结hashMap和hashtable

     在这里帮大家总结一下hashMap和hashtable方面的知识点吧: 1.  关于HashMap的一些说法:  a)  HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体.Ha ...

  8. 浅谈JQuery

    一.什么是JQuery? JQuery是第三方开发的执行DOM操作的极简化的函数库. 执行DOM操作:JQuery还是在执行DOM操作 1.学习JQuery还是在学习DOM 2.五件事:增删改查 事件 ...

  9. Python 图像处理 OpenCV (4):图像算数运算以及修改颜色空间

    前文传送门: 「Python 图像处理 OpenCV (1):入门」 「Python 图像处理 OpenCV (2):像素处理与 Numpy 操作以及 Matplotlib 显示图像」 「Python ...

  10. 【python爬虫】scrapy入门1--环境搭建

    Scrapy Day01 (1) 进入主目录,右键打开终端,创建项目 scrapy startproject xicidailiSpyder 进入项目目录 cd xicidailiSpyder/ 创建 ...