阿里云短信Demo演示

一、前端部分
无前端。
二、后端部分
1、创建发送短信测试模块SmsSendDemo,不用使用骨架。

2、在pom文件中引入依赖坐标

 <dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.0.3</version></dependency>

3、新建demo类SendDemo
从阿里云的demo实例中将类复制到这个demo类中。
SendDemo中全文如下:

package cn.myApplication;import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;public class SendDemo {public static void main(String[] args) {DefaultProfile profile = DefaultProfile.getProfile("default", "LTAIk********sMkU", "AkxxB****************8lgHRT********vc");   //使用密钥<accessKeyId>和<accessSecret>IAcsClient client = new DefaultAcsClient(profile);CommonRequest request = new CommonRequest();//request.setProtocol(ProtocolType.HTTPS);request.setMethod(MethodType.POST);request.setDomain("dysmsapi.aliyuncs.com");request.setVersion("2017-05-25");request.setAction("SendSms");request.putQueryParameter("PhoneNumbers", "198****3487"); //目标手机号码request.putQueryParameter("SignName", "国际***商系统");  //申请阿里云短信时的项目名称request.putQueryParameter("TemplateCode", "SMS_*****5570");  //申请的阿里云短信的模板request.putQueryParameter("TemplateParam", "{\"code\":\"12***6\"}"); //验证码(需要写成json格式)try {CommonResponse response = client.getCommonResponse(request);System.out.println(response.getData());} catch (ServerException e) {e.printStackTrace();} catch (ClientException e) {e.printStackTrace();}}
}

4、运行main方法,即可在目标短信中收到信息

Http的Get请求演示

一、前端部分
不涉及前端。
二、后端部分
方便起见,直接在SmsSendDemo模块中创建Demo类。

1、创建HttpClientGetTest类
全文如下:

package cn.myApplication;import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;import java.io.IOException;public class HttpClientGetTest {public static void main(String[] args) {CloseableHttpClient httpClient = HttpClients.createDefault();HttpGet httpGet = new HttpGet("http://www.baidu.com/s?wd=java");try {CloseableHttpResponse response = httpClient.execute(httpGet);if (response.getStatusLine().getStatusCode() == 200) {HttpEntity entity = response.getEntity();String s = EntityUtils.toString(entity, "utf-8");System.out.println(s);}} catch (IOException e) {e.printStackTrace();}}
}

Http的Post请求演示

一、前端部分
不涉及前端。
二、后端部分
1、创建HttpClientPostTest类

package cn.myApplication;import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;public class HttpClientPostTest {public static void main(String[] args) throws UnsupportedEncodingException {CloseableHttpClient httpClient = HttpClients.createDefault();/** 此处用开源中国举例说明。添加到list集合中的数据是根据开源中国具体的访问路径而定,* 不是固定写法。具体网站需要具体分析。* */HttpPost httpPost = new HttpPost("https://www.oschina.net/");ArrayList<NameValuePair> valuePairs = new ArrayList<NameValuePair>();valuePairs.add(new BasicNameValuePair("scope", "project"));valuePairs.add(new BasicNameValuePair("q", "java"));//使用UrlEncodedFormEntity将list转为entity对象UrlEncodedFormEntity entity = new UrlEncodedFormEntity(valuePairs, "utf-8");//将entity设置到httpPost中,作为访问路径的参数。httpPost.setEntity(entity);//有些网站拒绝不是浏览器发出的请求,所以需要手动设置请求头信息(从任意网站上F12看请求头即可找到,复制过来即可)httpPost.addHeader("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36");try {CloseableHttpResponse response = httpClient.execute(httpPost);if (response.getStatusLine().getStatusCode() == 200) {HttpEntity responseEntity = response.getEntity();String s = EntityUtils.toString(responseEntity, "utf-8");System.out.println(s);  //打印的是当前网页的html数据 }} catch (IOException e) {e.printStackTrace();}}
}

httpClient工具类演示

一、前端部分
不涉及前端。
二、后端部分
1、复制HttpClientUtil工具类到当前模块中。(这个HttpClientUtil不是咱写的,直接复制过来的)

package cn.myApplication;import java.io.IOException;
import java.security.GeneralSecurityException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.text.ParseException;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLException;
import javax.net.ssl.SSLSession;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;import org.apache.http.Consts;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.SSLContextBuilder;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.conn.ssl.TrustStrategy;
import org.apache.http.conn.ssl.X509HostnameVerifier;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;/*** http请求客户端* * @author Administrator* */
public class HttpClientUtil {public  static HttpClientContext context = null;static {System.out.println("====================begin");context = HttpClientContext.create();}private String url;private Map<String, String> param;private int statusCode;private String content;private String xmlParam;private boolean isHttps;public boolean isHttps() {return isHttps;}public void setHttps(boolean isHttps) {this.isHttps = isHttps;}public String getXmlParam() {return xmlParam;}public void setXmlParam(String xmlParam) {this.xmlParam = xmlParam;}public HttpClientUtil(String url, Map<String, String> param) {this.url = url;this.param = param;}public HttpClientUtil(String url) {this.url = url;}public void setParameter(Map<String, String> map) {param = map;}public void addParameter(String key, String value) {if (param == null)param = new HashMap<String, String>();param.put(key, value);}public void post() throws ClientProtocolException, IOException {HttpPost http = new HttpPost(url);setEntity(http);execute(http);}public void put() throws ClientProtocolException, IOException {HttpPut http = new HttpPut(url);setEntity(http);execute(http);}public void get() throws ClientProtocolException, IOException {if (param != null) {StringBuilder url = new StringBuilder(this.url);boolean isFirst = true;for (String key : param.keySet()) {if (isFirst)url.append("?");elseurl.append("&");url.append(key).append("=").append(param.get(key));}this.url = url.toString();}HttpGet http = new HttpGet(url);execute(http);}/*** set http post,put param*/private void setEntity(HttpEntityEnclosingRequestBase http) {if (param != null) {List<NameValuePair> nvps = new LinkedList<NameValuePair>();for (String key : param.keySet())nvps.add(new BasicNameValuePair(key, param.get(key))); // 参数http.setEntity(new UrlEncodedFormEntity(nvps, Consts.UTF_8)); // 设置参数}if (xmlParam != null) {http.setEntity(new StringEntity(xmlParam, Consts.UTF_8));}}private void execute(HttpUriRequest http) throws ClientProtocolException,IOException {CloseableHttpClient httpClient = null;try {if (isHttps) {SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() {// 信任所有public boolean isTrusted(X509Certificate[] chain,String authType)throws CertificateException {return true;}}).build();SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext);httpClient = HttpClients.custom().setSSLSocketFactory(sslsf).build();} else {httpClient = HttpClients.createDefault();}CloseableHttpResponse response = httpClient.execute(http,context);try {if (response != null) {if (response.getStatusLine() != null)statusCode = response.getStatusLine().getStatusCode();HttpEntity entity = response.getEntity();// 响应内容content = EntityUtils.toString(entity, Consts.UTF_8);}} finally {response.close();}} catch (Exception e) {e.printStackTrace();} finally {httpClient.close();}}public int getStatusCode() {return statusCode;}public String getContent() throws ParseException, IOException {return content;}}

2、编写测试类,测试HttpClientUtilTest用来测试使用HttpClientUtil。

package cn.myApplication;import org.apache.http.client.protocol.HttpClientContext;import java.io.IOException;
import java.util.HashMap;
import java.util.Map;/*
*使用工具类来访问我们自己的项目。
* 我们的项目使用了security安全框架,无法直接访问
* 解决办法:
* 1、在security的配置文件spring-security.xml中,在释放访问资源的配置中,添加我们将要访问的方法
* 2、不使用第一种方式的话,可以在本类中先使用post方法,先将用户名和密码发送给安全框架的login。
*/
public class HttpClientUtilTest {public static void main(String[] args) throws Exception {HttpClientUtil httpClientUtilLogin = new HttpClientUtil("http://localhost:9101/login");Map map = new HashMap();map.put("username", "admin");map.put("password", "123456");httpClientUtilLogin.setParameter(map);httpClientUtilLogin.post();/* String loginContent = httpClientUtilLogin.getContent();//获取返回值//System.out.println(loginContent);*/HttpClientUtil httpClientUtil = new HttpClientUtil("http://localhost:9101/brand/findAll.do");httpClientUtil.get();String content = httpClientUtil.getContent();System.out.println(content);}
}

附:在security的配置文件spring-security.xml中,在释放访问资源的配置中,添加我们将要访问的方法。操作如下:

发送短信模块搭建

一、前端部分
不涉及前端。
二、后端部分
新建短信发送模块sms。因为需要单独启动,所以使用骨架。

1、在pom文件中引入依赖,和tomcat配置


2、在web.xml中配置springmvc的基本配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"version="2.5"><!-- 解决post乱码 --><filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>utf-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 指定加载的配置文件 ,通过参数contextConfigLocation加载--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping></web-app>

3、在resources中需要有两个配置文件

application.properties中写的是阿里云短信服务的密钥
全文如下:

accessKeyId=LTA***********jNG
accessKeySecret=AMlN************************0bAsq

springmvc.xml中设置的是加载上面的配置文件,以及包扫描等。
全文如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><context:property-placeholder location="classpath:config/application.properties" /><mvc:annotation-driven><mvc:message-converters register-defaults="true"><bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"><property name="supportedMediaTypes" value="application/json"/><property name="features"><array><value>WriteMapNullValue</value><value>WriteDateUseDateFormat</value></array></property></bean></mvc:message-converters></mvc:annotation-driven><context:component-scan base-package="cn.myApplication.sms"/>
</beans>

4、在java文件夹中创建controller类SmsController(配置RequestMapping,可以通过ip地址和端口号以及访问方法直接使用这个类的功能)

SmsController全文如下:

import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class SmsController {/*@Value("${accessKeyId}")private String accessKeyId;*/@RequestMapping("/sms")public void sendSms(String phone,String code){DefaultProfile profile = DefaultProfile.getProfile("default", "LTAIk********sMkU", "AkxxBk*************Hk*******9yvc");IAcsClient client = new DefaultAcsClient(profile);CommonRequest request = new CommonRequest();//request.setProtocol(ProtocolType.HTTPS);request.setMethod(MethodType.POST);request.setDomain("dysmsapi.aliyuncs.com");request.setVersion("2017-05-25");request.setAction("SendSms");request.putQueryParameter("RegionId", "cn-hangzhou");request.putQueryParameter("PhoneNumbers", phone);    //电话由调用者传过来request.putQueryParameter("SignName", "国际*****系统");request.putQueryParameter("TemplateCode", "SMS_*******70");request.putQueryParameter("TemplateParam", "{\"code\":\""+code+"\"}");     //验证码由调用者传过来try {CommonResponse response = client.getCommonResponse(request);System.out.println(response.getData());//这里输出的是返回信息// {"Message":"OK","RequestId":"8D1EB85C-D1C6-401F-8387-6AC68ACE69FF","BizId":"694609952912473540^0","Code":"OK"}} catch (ServerException e) {e.printStackTrace();} catch (ClientException e) {e.printStackTrace();}}
}

搭建用户中心模块

新建模块

1、interface中不使用骨架,其余两个使用骨架
2、在service实现类中,web.xml配置文件如下:

3、在service的resources中引入配置文件

applicationContext-activemq.xml今天不用。

applicationContext-service.xml中配置的是访问dubbo的地址等。

4、在user-web模块中引入静态文件

web.xml全文如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"version="2.5"><!-- 解决post乱码 --><filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>utf-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><filter><filter-name>SpringEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>SpringEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 指定加载的配置文件 ,通过参数contextConfigLocation加载 --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping><welcome-file-list><welcome-file>search.html</welcome-file></welcome-file-list>
</web-app>

在web模块的resources中引入配置文件

springmvc.xml全文如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><mvc:annotation-driven><mvc:message-converters register-defaults="true"><beanclass="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"><property name="supportedMediaTypes" value="application/json" /><property name="features"><array><value>WriteMapNullValue</value><value>WriteDateUseDateFormat</value></array></property></bean></mvc:message-converters></mvc:annotation-driven><!-- 引用dubbo 服务 --><dubbo:application name="MyApplication-user-web" /><dubbo:registry address="zookeeper://192.168.25.128:2181" /><dubbo:annotation package="com.MyApplication.user.controller" />
</beans>

在web模块的pom文件中设置tomcat

    <build><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><!-- 指定端口 --><port>9106</port><!-- 请求路径 --><path>/</path></configuration></plugin></plugins></build>

一、前端部分
不涉及。
二、后端部分
不涉及。

完成user注册基本功能

一、前端部分
1、页面绑定模型和save方法以及smsSend方法等




2、在js文件中controller.js文件中定义对应的方法

3、在js文件的service.js中完成请求的发送

二、后端部分
1、pom文件中引入依赖

其他的需要什么引入什么。
注意:将redis的配置文件和HttpClientUtil工具类放在common模块的util文件夹下,所以还需要引入common模块。

2、common内引入的文件和类的说明
3、在web模块中定义UserController类。

4、在user_interface接口中添加方法

5、在UserServiceImpl实现类中实现接口中的方法
引入userMapper和redisTemplate

实现add添加方法

实现发送验证码的sendSms方法

实现checkSmsCode方法

14、阿里云短信Demo演示、Http的Get请求和Post请求演示、httpClient工具类演示、发送短信模块搭建、搭建用户中心模块、完成user注册基本功能、验证码存入redis、短信验证码注册相关推荐

  1. java的springboot项目操作阿里云OSS下载文件、查看文件内容、上传文件,自定义工具类

    因为要从oss下载.查看.上传工具类,所以对这几个方法做了一个封装,已经经过测试,可以直接使用 1.yml添加上阿里云配置.添加maven配置 注意这里的objectName: xxx/xxx/,前面 ...

  2. java手机短信验证,并存入redis中,验证码时效5分钟

    目录 1.注册发送短信账号一个账号 2.打开虚拟机,将redis服务端打开 3.创建springboot工程,导入相关依赖 4.写yml配置 5.创建controller层,并创建controller ...

  3. Django搭建服务器,和微信小程序通信,验证码存入redis,用户信息存入mysql以及图片上传

    写在前面:整体是实现小程序的登录和注册,并接收验证码进行校验. 一.创建项目 django-admin startproject wxTest 二.注册app,进入到wxTest目录中 python ...

  4. tp5.0阿里云oss存储Demo

    序言:最近在做一个项目,关于的是投稿的项目,其实就是一个图片网站的问题,原本做的一直是将文件存放到服务器中,但现在由于用户越来越多,所以要将图片的路径更新到一个位置,所以阿里云oss存储就出来了. 首 ...

  5. 阿里云的这群疯子--深度好文请仔细看完

    世事安稳,岁月静好. 电影里才有疯子.麦克墨菲在疯人院里带领一群精神病人揭竿而起,怼天怼地:饿了三天的黑皮为了抢一口面包被店主追上高架桥,末路狂奔:杰克和泰勒在午夜的搏击俱乐部里挥拳相向,鲜血淋漓.屏 ...

  6. 阿里云文件上传报413 Request Entity Too Large(请求实体太大)

    文章目录 1.问题描述 2.解决方案 1.问题描述 今天在使用阿里云做上传文件的时候,后端使用swagger测试都没问题,前端测试就有问题了,一直包413错误,后来通过控制台发现是文件大小的问题.由于 ...

  7. 阿里云 socket OSError:[WinError 10049] 在其上下文中,该请求的地址无效 原因之一

    背景介绍 阿里云提醒,服务器需由经典网络迁移至专有网络,迁移完成,启动服务时,原本已经运行了几个月的脚本, 报错 10049.127.0.0.1 测试无误,ping公网IP也没毛病,百思不得姐. 解决 ...

  8. 轻松把玩HttpClient之封装HttpClient工具类(七),新增验证码识别功能

    这个HttpClientUtil工具类分享在GitHub上已经半年多的时间了,并且得到了不小的关注,有25颗star,被fork了38次.有了大家的鼓励,工具类一直也在完善中.最近比较忙,两个多月前的 ...

  9. ReachMax上云路:支撑日50亿PV请求和TB级数据运算的云端架构

    本文正在参加"最佳上云实践"评选,来给我们投票吧:https://yq.aliyun.com/activity/158(编号26) ReachMax是加和科技(AddNewer)创 ...

最新文章

  1. matlab球落点的数学建模,MATLAB数学建模:智能优化算法-人工鱼群算法
  2. linux 虚拟机新增磁盘,linux(虚拟机)下新增磁盘配置
  3. JavaWeb生成图片验证码
  4. C#将文件压缩或者解压
  5. Layui表格之多列合并展示
  6. start 与 run 区别
  7. 深度学习之卷积神经网络(5)表示学习
  8. 【渝粤教育】广东开放大学 社会工作行政 形成性考核 (52)
  9. android 组件路由框架,XRouter:组件化路由框架
  10. 信息学奥赛一本通 1171:大整数的因子 | OpenJudge NOI 1.6 13:大整数的因子
  11. 了解 Adobe Scout 收集和使用的数据
  12. Flex3 Chart学习笔记:PieChart(饼图)
  13. 量子十问之二:“爱因斯坦幽灵”能用来实现超光速通信吗?
  14. linux主进程退出时,结束子进程
  15. FPGA中CDC问题
  16. 大白菜装机教程win10_电脑一键装机win10系统_win10教程
  17. reentrantlock与synch区别优点
  18. 输入一行字符,以回车符作为输入结束的标志。统计其中英文字母、数字字符和其他字符的个数。
  19. 怎样在word中画横线
  20. TCPIP卷一(2):二层封装之–PPP与FR

热门文章

  1. Linux--Smba服务搭建
  2. CnOpenData中国专利文本数据简介
  3. 14.PG分区表-传统分区表
  4. PTA---C++实现,计算正方体、圆柱体的表面积、体积
  5. Oracle Database SQL Language Reference 笔记(3)—— 伪列(续)
  6. windows10 改变桌面路径到其他盘 直接显示所有文件重定向路径问题
  7. error CS1061
  8. 客户文章|南方医科大学李克玄团队破解肠道宏病毒与心肌病关系
  9. OpenGL学习(九)阴影映射(shadowMapping)
  10. Spring Boot使用Servlet居然也可以实现长轮询,敲了5年代码,我居然不知道 - 第413篇