shiro采坑指南—基础概念与实战
说明 代码及部分相关资料根据慕课网Mark老师的视频进行整理。 其他资料: shiro官网 基础概念 Authenticate/Authentication(认证) 认证是指检查用户身份合法性,通过校验用户输入的密码是否正确,判断用户是否为本人。 有几个概念需要理解: Principals (主体标识) 任何可以唯一地确定一个用户的属性都可以充当principal,例如:邮箱、手机号、用户ID等,这些都是与用户一一对应的,可以唯一地确定一个用户。 credentials (主体
Javascript小白经典题型(一)
1. 输出是什么? function sayHi() {
console.log(name)
console.log(age)
var name = 'Lydia'
let age = 21
}
sayHi() A: Lydia 和 undefined B: Lydia 和 ReferenceError C: ReferenceError 和 21 D: undefined 和 ReferenceError 2. 输出是什么? for (var i = 0; i < 3; i
【图解】如何击溃芝诺悖论
什么是芝诺悖论 芝诺悖论描述了这样一个场景:飞毛腿阿基里斯要追赶远处的一只乌龟,但是每当阿基里斯到达乌龟的位置时,慢吞吞的乌龟总是能往前走一小段距离,然后阿基里斯就又不得不以乌龟当前的位置为目标前进(当然这段时间乌龟仍旧会制造一个新的距离),于是可怜的阿基里斯永远都追不上这只慢吞吞的乌龟了 芝诺悖论的误点 一、偷换概念:把有限的时间换成了无限个微小时间的和 阿基里斯实际上追上乌龟需要1分钟,可是芝诺却偷换成了无穷多微小时间的和 1 = 0.9 + 0.09 +0.009 +0.0009 + .
git 安装,代码提交,跨服务器SSH免密访问
vmware 准备3个服务器 192.168.5.136 docker、jenkins 192.168.5.137 docker、 192.168.5.138 docker、 192.168.5.139 docker、git、registry 1、Git安装,可通过 多种方式,可下安装包。 这里直接yum 安装 yum install git -y 2、创建Git用户并设置密码 -- 新增用户gitu
useradd gitu
-- 设置用户gitu的密码
passwd gitu 3
[转帖]构建C1000K的服务器(1) – 基础
构建C1000K的服务器(1) – 基础 http://www.ideawu.net/blog/archives/740.html Computer System, 高性能Web架构 Views: 107007 | 32 Comments 著名的 C10K 问题提出的时候, 正是 2001 年, 到如今 12 年后的 2013 年, C10K 已经不是问题了, 任何一个普通的程序员, 都能利用手边的语言和库, 轻松地写出 C10K 的服务器. 这既得益于软件的进步, 也得益于硬件性能的提高.
VS2008新建MFC程序时提示:当前页面的脚本发送错误 不是有效的Win32应用程序的解决办法
错误现象: 解决方案: 1.根据错误信息中的url,找到对应文件夹下的htm文件 2.使用notepad++打开default.htm文件,找到错误提示地方,注释掉其中两句语句,如433和434行所示。一般在该文件的最后面。 然后保存文件,重新新建win32控制台程序。 3.其它地方出现脚本错误,以此类推,修改上面那二句代码后保存即可。 解决方案: 1.根据错误信息中的url,找到对应文件夹下的htm文件 2.使用notepad++打开default.htm文件,找到错误提示地方,注释掉其中两
爬虫学习 10.scrapy框架简介和基础应用
爬虫学习 10.scrapy框架简介和基础应用 今日概要 scrapy框架介绍 环境安装 基础使用 今日详情 一.什么是Scrapy? Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍。所谓的框架就是一个已经被集成了各种功能(高性能异步下载,队列,分布式,解析,持久化等)的具有很强通用性的项目模板。对于框架的学习,重点是要学习其框架的特性、各个功能的用法即可。 二.安装 Linux: ``pip3 install scrapy Windo
自己瞎捉摸学习:十三种设计模式之模板方式设计
模板方式就是将对象分为可变与不可变得部分,就例如spring_mvc中的共有行为和特有行为,将不可变的部分封装起来,提供给需要此类对象操作的用户,然后将再有用户对对可变部分进行自己的进一步处理,就例如springmvc中的特有行为. 目前已用的模板设计模式, 1,JDBCtemplate 顾名思义,在操作数据库连接池对数据库进行CRUD时,其中的某些步骤的固定不定的,例如注册驱动,获取连接对象等,而JDBCTemplate就是对这些共性进行了封装 我们使用时只需创建此类对象,然后对对象进行
iview实现国际化
由于项目需求需要配置国际化,使用的UI框架为iview, vue国际化使用的是vue-i18n组件,按照官方要求下载 vue-i18n(8.14.0),版本大于6.0 按照官方提供的6.0配置方案解决。 第一步:需要先进行安装 npm install vue-i18n 第二步: 创建一个新的目录 language 目录, 在该目录下创建 index.js、en-US.json、zh-CN.json。 index.js 配置i18n: 按照官方文档引入需要的包,然后配置 (全是按照官方文档
Java上传图片到Ftp,包含上传后文件大小为0的问题和Properties配置文件的读取
准备工作:需要使用coomos-net jar包。下载地址 一、 上传图片到FTP,文件大小为0的问题,解决:将ftp模式修改为Passive模式就可以了。 //将ftp模式修改为Passive模式
ftpClient.enterLocalPassiveMode(); 二、配置文件的操作,具体介绍请看 Java中Properties类的用法总结 1.使用.properties配置文件的形式定义相关常量。 2.在工具类中导入配置文件 private static Properties getFt
anaconda换源
https://blog.csdn.net/NCHFGFB/article/details/79957970?utm_source=blogxgwz0 https://blog.csdn.net/qq_23518283/article/details/97126224
Windows dll注入
概念 DLL注入(英语:DLL injection)是一种计算机编程技术,它可以强行使另一个进程加载一个动态链接库以在其地址空间内运行指定代码[1]。在Windows操作系统上,每个进程都有独立的进程空间,即一个进程是无法直接操作另一个进程的数据的(事实上,不仅Windows,许多操作系统也是如此)。但是DLL注入是用一种不直接的方式,来实现操作其他进程的数据。假设我们有一个DLL文件,里面有操作目标进程数据的程序代码逻辑,DLL注入就是使目标进程加载这个DLL,加载后,这个DLL就成为目标进
【编程风格】c++命名约定
前言 这里主要介绍博主想要形成个人比较稳定的编程风格(还在努力中),需要遵循的命名规范,主要借鉴google编程风格。 1. 通用命名规则 要有描述性,尽量让命名更加明确,尽量少用缩写; 模板参数的命名应当遵循对应的分类: 类型模板参数应当遵循 类型命名 的规则, 而非类型模板应当遵循 变量命名 的规则. 2. 文件命名 文件名要全部小写,可以使用下划线连接。定义类时头文件和源文件的文件名一般成对出现。 内联函数必须放在头文件中。 3. 类型命名 类型名称每个单词的首字母均大写,不包含下划线。
0048java8的新特性
java8的新特性主要是Lambda表达式和流式编程,前提都是需要一个函数式接口。 ---------------------函数式接口------------------ 1、函数式接口的定义 函数式接口在java中是指有且只有一个抽象方法的接口。 java中函数式编程的体现就是Lambda表达式。 语法糖:是指使用更加方便,但是原理不变的代码语法。Lambda可以被当做是匿名内部类的“语法糖”。 2、函数式接口的使用 可以做为方法的参数或者返回值使用 接口: package functio
今日推荐
周排行