Docker安装和使用Tomcat
1.搜索Tomcat镜像 docker search tomcat 2.下载Tomcat官方镜像 docker pull tomcat 3.基于这个镜像,创建一个容器 docker create --name dev_tomcat -p 8080:8080 tomcat 4.启动Tomcat docker start dev_tomcat 5.检查, http://IP:8080 至此,安装完成 6.停用Tomcat Docker stop dev_name
SM4算法的长数据加密——第二部分
==国密算法的实现方式·第二部分== 一、SM4的长明数据加密 长数据加密其实很简单,大概想一下,把数据分成与组长相等的数据段,分别加密,然后拼起来,就大功告成了!没错就是这么简单,不过这只是其中一种加密方式,在讲述分组密码的长数据加密时,通常会讲到工作模式: 1.分组密码的工作模式 ECB-电码本(Electronic Code Book)模式: 这是最简单的、直接使用分组密码算法的工作模式,就如同上文提到的那样,将明文分组填充至分组长度,分别加密再按原顺序连接成密文。工作描述如下图: 这种
es6+最佳入门实践(7)
7.set和map数据结构 7.1.什么是set? Set就是集合,集合是由一组无序且唯一的项组成,在es6中新增了set这种数据结构,有点类似于数组,但是它的元素是唯一的,没有重复 let st = new Set([1,2,2,3,3,4])
console.log(st) // [1,2,3,4] Set的size属性可以知道set中有多少元素,类似于数组的length属性 let st = new Set([1,2,2,3,3,4])
console.log(st.size); /
es6+最佳入门实践(8)
8.Promise 8.1.什么是异步? 要理解异步,首先,从同步代码开始说 alert(1)
alert(2) 像上面的代码,执行顺序是从上到下,先后弹出1和2,这种代码叫做同步代码 alert(0)
setTimeout(function () {
alert(1);
}, 2000);
setTimeout(function () {
alert(2)
}, 1000);
alert(3) 上面代码的弹出顺序是 0 3 2 1 ,像这种不按从上到下依次执行的代码叫做异步
25行为型模式之迭代器模式
概念 Iterator模式也叫迭代模式,是行为模式之一,它把对容器中包含的内部对象的访问委让给外部类,使用Iterator(遍历)按顺序进行遍历访问的设计模式。 在应用Iterator模式之前,首先应该明白Iterator模式用来解决什么问题。或者说,如果不使用Iterator模式,会存在什么问题。 1.由容器自己实现顺序遍历。直接在容器类里直接添加顺序遍历方法 2.让调用者自己实现遍历。直接暴露数据细节给外部。 以上方法1与方法2都可以实现对遍历,这样有问题呢? 1,容器类承担了
es6+最佳入门实践(9)
9.Iterator和for...of 9.1.Iterator是什么? Iterator又叫做迭代器,它是一种接口,为各种不同的数据结构提供统一的访问机制。这里说的接口可以形象的理解为USB接口,有了这个接口可以做不同的事情,在编程中所说的接口最终都是要通过一段代码块来实现这个接口功能的。而Iterator接口提供的统一访问机制主要表现为遍历操作,任何数据类型只要具有Iterator接口,就可以完成遍历操作(遍历操作指依次处理该数据结构的所有成员),总结起来就是说我们需要一种统一的机制来依次
SVD singular value decomposition
SVD singular value decomposition https://en.wikipedia.org/wiki/Singular_value_decomposition 奇异值分解在统计中的主要应用为主成分分析(PCA),一种数据分析方法,用来找出大量数据中所隐含的“模式”,它可以用在模式识别,数据压缩等方面。PCA算法的作用是把数据集映射到低维空间中去。 数据集的特征值(在SVD中用奇异值表征)按照重要性排列,降维的过程就是舍弃不重要的特征向量的过程,而剩下的特征向量组成的空间
es6+最佳入门实践(10)
10.Generator 10.1.Generator是什么? Generator函数是ES6提供的一种异步编程解决方案。在它的内部封装了多个状态,因此,又可以理解为一种状态机,执行Generator函数后返回一个迭代器对象,使用这个迭代器对象可以遍历出Generator函数内部的状态 Generator函数和传统函数的不同点有:1 函数定义的时候,function关键字后面加“*”, 2 内部使用yield关键字定义内部状态
function* HelloGenerator() {
记一次简单的sql注入
什么是sql注入攻击? 所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。 1.判断注入点是否有效 sqlmap -u "http://xxx.xxx.com/product.php?type_id=59" 2,查找数据库 sqlmap -u "http://xxx.xxx.com/prod
es6+最佳入门实践(11)
11.async函数 async 函数是什么?一句话,它就是 Generator 函数的语法糖。通俗的说就是Generator函数的另一种写法,这种写法更简洁,除此之外,async函数还对Genrator进行了一些改进 首先,来回顾一下Generator函数实现文件读取 const fs = require('fs');
const co = require('co');
function readFile(path) {
return new Promise((resolve, r
C++函数默认参数 C++函数默认参数
C++函数默认参数 C++中允许为函数提供默认参数,又名缺省参数。 使用默认参数时的注意事项: ① 有函数声明(原型)时,默认参数可以放在函数声明或者定义中,但只能放在二者之一 double sqrt(double f = 1.0); //函数声明
double sqrt(double f) //函数定义
{
// ....
} ② 没有函数(原型)时,默认参数在函数定义时指定. //没有 函数声明
double sqrt(double f = 1.0) //函
Scrapy 组件的具体用法
一、Spider 用法 在 Scrapy 中,要抓取网站的链接配置、抓取逻辑、解析逻辑都是在 Spider 里完成的。Spider 的一些基础属性和基础方法: name:爬虫名字,Spider的名字定义了 Scrapy 是如何定位并初始化 Spider的,必须是唯一的。例如爬取 mywebsite.com,那么该 Spider通常被命名为 mywebsite。 allowed_domains:允许爬取的域名,不在在范围的链接不会被根据爬取。 start_urls:它是起始 URL 列表,当我们
cf1108E2 线段树类似扫描线
/*
有点像扫描线
思路:从左到右枚举每个点,枚举到点i时,把所有以i为起点的区间的影响删去
再加上以i-1为结尾的区间的影响
*/
#include<bits/stdc++.h>
using namespace std;
#define maxn 200005
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
int n,m,a[maxn];
struct Inv{int l,r;}p[400];
int lazy[maxn<<2],M
ansible Templates:模版
---恢复内容开始--- Templates:模版 cat /etc/ansible/hosts cat templates/nginx.conf.j2 - hosts: test remote_user: root vars: - package: httpd - service: httpd tasks: - name: install nginx package yum: name={{ package }} state=latest - name: install configu
算法训练 素因子去重
素因子去重 #include<iostream>
#include<math.h>
#include<set>
using namespace std;
bool isprime(long long int n){
if(n==1) return false;
for(int i=2; i<=sqrt(n); i++)
if(n%i==0) return false;
return true;
}
int main(){
long long in
23行为型模式之状态模式
概念 State模式也叫状态模式,是行为设计模式的一种。State模式允许通过改变对象的内部状态而改变对象的行为,这个对象表现得就好像修改了它的类一样。 状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转译到表现不同状态的一系列类当中,可以把复杂的判断逻辑简化。 角色和职责 Context:用户对象 拥有一个State类型的成员,以标识对象的当前状态; State:接口或基类 封装与Context的特定状态相关的行为; ConcreteState
脚本启动flask程序
from flask import Flask
from flask_script import Manage
app = Flask(__name__)
manage = Manage(app)#创建Manage的管理类对象
@app.route("/index")
def index():
return "ok"
if __name__ = "main":
#通过管理对象来启动程序
manage.run() #终端启动 python xxx
今日推荐
周排行