- 博客(33)
- 收藏
- 关注
原创 【笔记】09.SSM+Shiro前后端分离的使用方法
09SSM+Shiro前后端分离的使用方法1.什么是前后端分离后端只给前端提供接口数据2.接口文档的说明【以登录为例】接口名:用户登录接口地址:http://localhost:8080/login/login参数说明参数名参数说明要求username登录名必填pwd登录密码必填返回示例{ “code”:200, “msg”:“登陆成功”}3.复制项目064.创建ResultObjpackage com.stu.uti
2021-04-21 17:33:09
542
原创 【笔记】08.SSM+shiro+realm实现集成
08SSM+shiro+realm实现集成1.准备数据库2.搭建ssm的环境创建项目修改pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apa
2021-04-21 17:31:57
418
原创 【笔记】07.散列算法+凭证配置
07散列算法+凭证配置一、散列算法1.概述散列算法一般用于生成数据的摘要信息,是一种不可逆的算法,一般适合存储密码之类的数据,常见的散列算法如MD5、SHA等。一般进行散列时最好提供一个salt(盐),如:对密码进行加密,用户名和ID(盐);这样散列的对象是“密码+用户名+ID”,这样生成的散列值相对来说更难破解。2.MD5工具类package com.utils;/*@author qw@date 2021/3/28 - 16:14**/import org.apache.shi
2021-04-15 23:23:18
458
原创 【笔记】06.自定义Realm实现授权
06自定义Realm实现授权1.复制03_Authentication_realm项目2.创建ActiverUserpackage com.domain;/*@author qw@date 2021/3/28 - 14:18**/import java.util.List;public class ActiverUser { private User user; private List<String> roles; private List<
2021-04-15 23:20:28
158
原创 【笔记】05.自定义Realm实现认证
05自定义Realm实现认证Shiro默认使用自带的IniRealm,IniRealm从ini配置文件中读取用户的信息,大部分情况下需要从系统的数据库中读取用户信息,所以需要自定义Realm1.Realm接口最基础的是Realm接口,CachingRealm负责缓存处理,AuthenticatingRealm负责认证,AuthorizingRealm负责授权,通常已定义的realm继承AuthorizingRealm2.实现步骤1.创建项目2.创建User类package com.d
2021-04-15 23:19:48
201
原创 【笔记】04.Shiro实现授权
04Shiro实现授权1.授权概述授权,也叫访问控制,即在应用中控制谁能访问哪些资源(如访问页面/编辑数据/页面操作等)。在授权中需了解的几个关键对象:主体(Subject)、资源(Resource)、权限(Permission)、角色(Role)。2.关键对象介绍1.主体即访问应用的用户,在shiro中使用subject代表该用户,用户只有授权后才允许访问响应的资源2.资源在应用中用户可以访问的任何东西,比如访问JSP页面、查看/编辑某些数据,访问某个业务方法、打印文本等等都是资源
2021-04-12 15:15:02
156
原创 【笔记】03.Shiro实现认证
03Shiro实现认证1.基本概念1.身份验证即在应用中谁能证明他就是他本人。一般提供如他们的身份ID一些标识信息来证明他就是他本人,如提供身份证,用户名/密码来证明在shiro中, 用户需要提供principals(身份)和credentials(证明即密码)给shiro,从而应用能验证用户身份。2.principals身份,即主体的标识属性,可以是任何东西,如用户名、邮箱等,唯一即可。一个主体可以有多个principals,但只有一个Primary principals,一般是用户名
2021-04-12 15:13:03
168
原创 【笔记】02.Shiro.ini文件
02Shiro.ini文件1.Shiro.ini文件的说明ini(InitializationFile) 初始文件 Window系统文件扩展名Shiro使用时可以连接数据库,也可以不连接数据库如果不连接数据库,可以在shiro.ini中配置静态数据2.Shiro.ini文件的组成部分1.[main]:定义全局变量内置securityManager对象操作内置对象时,在[main]里面写东西[main]security.属性=值myobj=com.bjsxt.lei
2021-04-11 23:21:36
184
原创 【笔记】01.Shiro概述
01Shiro概述1.什么是shiroApache Shiro是Java的一个安全框架。shiro可以非常容易的开发出足够好的应用,其不仅可以用在JavaSErver环境,也可以用在JavaEE环境。Shiro可以帮助我们完成:认证、授权、加密、会话管理、与Web集成、缓存等。2.为什么要学shiro既然shiro将安全认证相关的功能抽取出来组成一个框架,使用shiro就可以非常快速的完成认证、授权等功能的开发,降低系统成本。shiro使用广泛,shiro可以运行在web应用,非web应用,
2021-04-11 23:19:14
137
原创 IDEA中连接MYSQL报错“Unknown database 数据库名”
IDEA报错Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: Cannot create PoolableConnectionFactory (Unknown database ‘shiro’)在项目中检查了db.properties文件,数据库的url、username、password都是正确的,项目启动后还是无法连接数数据库。在idea中测试数据库连接,依旧显示Unk
2021-04-11 10:26:31
31953
14
原创 【笔记】软件测试基础
软件测试【基础】1.软件和软件分类软件:是程序、数据和相关文档的集合软件的分类:按层次划分:①系统软件(与硬件关系密切) ②应用软件按组织划分:①商业软件(程序代码不开放) ②开源软件(程序代码开放)按结构划分:①单机软件 ②分布式软件(多台机器联网使用)2.软件缺陷的定义软件未实现产品说明书要求的功能软件出现了产品说明书指明不应该出现的功能软件实现了产品说明书未提及到的功能软件未实现产品说明书虽未明确提及但应该实现的目标软件难以理解、不易使用、运行缓慢或者(从测试的角度
2021-01-26 22:39:52
295
原创 【笔记】Vue快速入门
Vue一、Vue基础1.简介2.第一个Vue程序3.el:挂载点1)Vue实例的作用范围2)是否可以使用其他选择器3)是否可以设置其他的dom元素4.data:数据对象二、本地应用1.Vue指令1)内容绑定,事件绑定(1)v-text(2)v-html(3)v-on(4)计数器应用2)显示切换,属性绑定(1)v-show(2)v-if(3)v-bind(4)图片切换应用3)列表循环,表单元素绑定(1)v-for(2)v-on补充(3)v-model(4)小黑记事本应用三、网络应用1.axios [文档传送门
2021-01-25 10:58:33
657
原创 【笔记】微信小程序基础
目录微信小程序1.结构目录1)小程序文件结构和传统web对比2)基本项目目录2.配置文件1)全局配置app.json(1)pages字段(2)window字段(3)tabBar字段2)页面配置page.json3)sitemap配置3.模板语法1)数据绑定(1)普通写法(2)组件属性(3)bool类型2)运算(1)三元运算(2)算术运算(3)逻辑判断(4)字符串运算3)列表渲染(1)wx:for(2)block4)条件渲染(1)wx:if(2)hidden4.小程序事件的绑定1)wxml2)page3)特别
2021-01-21 00:06:54
495
原创 【笔记】数据结构与算法——哈希表
哈希表1.基本介绍散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,**它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。**这个映射函数叫做散列函数,存放记录的数组叫做散列表2.应用举例1)题目有一个公司,当有新的员工来报道时,要求将该员工的信息加入(id,性别,年龄,住址…等),当输入员工的id时,要求查到到该员工的所有信息要求:不适用数据库,尽量节省内存,速度越快越好 ==> 哈希表添加时,保证按
2020-08-23 22:26:10
247
原创 【笔记】数据结构与算法——查找算法
查找算法1.查找算法介绍2.线性查找算法1)基本介绍2)代码实现3.二分查找算法1)基本介绍2)思路3)代码实现4.插值查找算法1)基本介绍2)代码实现3)注意事项5.斐波那契(黄金分割法)查找算法1)基本介绍2)原理3)代码实现1.查找算法介绍在java中,我们常用的查找有四种:1)顺序(线性)查找2)二分查找/折半查找3)插值查找4)斐波那契查找2.线性查找算法1)基本介绍判断一个数列中是否包含某个数【顺序查找】要求:如果找到了,就提示找到,并返回下标值2)代码实现p
2020-08-22 21:53:25
469
原创 【笔记】数据结构与算法——排序算法
排序算法排序也称排序算法,是将一组数据,按照指定的顺序进行排列的过程1.排序的分类1)内部排序指将需要处理的所有数据都加载到内部存储器中进行排序2)外部排序数据量过大,无法全部加载到内存中,需要借助外部存储进行排序3)常见的排序算法分类2.算法的时间复杂度度量一个程序(算法)执行时间的两种方法:1.事后统计的方法:这种方法可行,但是有2个问题:一是要想对设计的算法的运行性能进行评测,需要实际运行该程序;二是所得时间的统计量依赖于计算机的硬件、软件等环境因素,这种方式,
2020-08-17 17:01:44
662
原创 【笔记】数据结构与算法——递归
递归1、递归的概念递归就是方法自己调用自己,每次调用时传入不同的变量。递归有助于编程者解决复杂的问题,同时可以让代码变得简洁2、递归需要遵守的规则执行一个方法时,就创建一个新的受保护的独立空间(栈空间)方法的局部变量是独立的,不会相互影响如果方法中使用的是引用类型变量,就会共享该引用类型的数据递归必须向退出递归的条件逼近,否则就是无限递归当一个方法执行完毕,或者遇到return就会返回,遵守谁调用,就将结果返回给谁。同时当方法执行完毕或者返回时,该方法也就执行完毕。3、递归应用场景
2020-08-15 21:36:31
276
1
原创 【笔记】数据结构与算法——栈
栈(stack)1、栈的介绍栈是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表允许插入和删除的一端为变化的一端,称为栈顶(top);另一端为固定的一端,称为栈底(bottom)特点:先进后出入栈(push)和出栈(pop)示意图2、栈的应用场景1)子程序的调用:在跳往子程序前,会先将下个指令的地址存到堆栈中,直到子程序执行完后再将地址取出,以回到原来的程序中。2)处理递归调用:和子程序的调用类似,只是除了储存下一个指令的地址外,也将参数、区域变量等数据存入堆栈中
2020-08-14 00:02:11
532
原创 【循环单链表】Joseph约瑟夫环问题
JosephCircle约瑟夫环问题问题:设编号为1,2,…n的n个人围坐在一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,以此类推,直到所有人出列为止,由此产生一个出队编号的序列。思路:用一个不带头结点的循环链表来处理约瑟夫问题。先构成一个有n个结点的循环单链表。由k结点起从1开始计数,计到m时,对应结点从链表中删除。再从被删除结点的下一个结点开始从1计数,知道最后一个结点从链表中删除,算法结束。p
2020-08-12 11:02:50
282
原创 【笔记】数据结构与算法——链表
Ø链表(LinkedList)链接方式存储的线性表简称为链表链表的具体存储表示为:用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)链表中结点的逻辑次序和物理次序不一定相同链表是以结点的方式来存储的:data域:存放结点值的数据域next域:存放结点的直接后继的地址的指针域链表分为带头结点的链表和不带头结点的链表,根据实际的需求来确定链表建立的过程是申请空间、得到数据、建立链接的循环处理过程(一)单链表单链表的建立1)头插法将链
2020-08-11 21:23:04
238
原创 【笔记】数据结构与算法——队列
队列Ø队列队列介绍概念:队列是一个有序列表,可以用数组或是链表来实现原则:先入先出;即:先存入队列的数据,要先取出,后存入的要后取出示意图:(使用数组模拟队列示意图)1.数组模拟队列1)队列数组声明:maxSize表示队列的最大容量front记录队列前端的下标,rear记录队列后端的下标;front会随着数据输出而改变,而rear是随着数据输入而改变向队列添加数据时:将尾指针后移:rear+1,当front=rear ==>队列为空若rear&l
2020-08-08 15:14:48
187
原创 【笔记】数据结构与算法——稀疏数组
数据结构与算法——稀疏数组Ø 数据结构包括:1.线性结构:线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系线性结构有两种不同的存储结构,即顺序存储结构和链式存储结构。顺序存储的线性表称为顺序表,顺序表中存储元素是连续的链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息线性结构常见的有:数组、队列、链表和栈2.非线性结构:包括:二维数组,多维数组,广义表,树结构,*图结构 ====>引生出多个算
2020-08-08 15:04:10
327
原创 【笔记】Java——流(Stream)
流在Java程序中,对于数据的输入/输出操作以“流”(stream)方式进行;J2SDK提供了各式各样的“流”类,用以获取不同种类的数据;程序中通过标准的方法输入或输出数据1.Java流类的分类java.io包中定义了多个流类型(类或抽象类)来实现输入/输出功能;可以从不同的角度对其进行分类:按数据流的方向不同可以分为输入流和输出流 【站在程序的角度】按处理数据单位不同可以分为字节流和字符流按照功能不同可以分为节点流和处理流2.输入/输出流类位于java.io内的所有流类
2020-08-07 22:41:33
241
原创 【笔记】Java——容器
容器1.容器 API容器:Java API所提供的一系列的实例,用于在程序中存放对象J2SDK 所提供的容器API位于java.util包内2.Collection接口定义了存储一组对象的方法,其子接口Set和List分别定义了存储方式Set中的数据对象没有顺序且不可以重复List中的数据对象有顺序可以重复1)Collection接口定义的方法int size() :元素个数boolean isEmpty():是否为空void clear():清空boolean
2020-08-06 18:24:41
259
原创 【笔记】Java——常用类
常用类1.字符串相关类(String、StringBuffer)1)String类java.lang.String 类代表不可变的字符序列(1)String类的常见构造方法String(String original):创建一个String对象为original的拷贝String(char[] value):用一个字符数组创建一个String对象String(char[] value,int offset,int count):用一个字符数组从offset项开始的count个字符序列创建
2020-08-04 21:14:33
212
原创 【笔记】Java——异常机制
异常机制1.什么是异常Exception,异常指程序运行中出现的不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等异常发生在程序运行期间,它影响了正常的程序执行流程2.简单分类要理解Java异常处理是如何工作的,需要掌握以下三种类型的异常:1)检查性异常最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略2)运行时异常运行时异常是可能被程序员避免的异常。与检查性异常相反,运行
2020-08-02 16:40:17
325
原创 【笔记】Java——面向对象
面向对象1.面向过程&面向对象1)面向过程思想步骤清晰简单,第一步做什么,第二步做什么…面对过程适合处理一些较为简单的问题2)面向对象思想物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。面向对象适合处理复杂的问题,适合处理需要多人协作的问题对于描述复杂的事物,为了从宏观上把握、从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理。
2020-08-01 22:59:59
182
原创 【笔记】Java基础——数组
数组1.数组概述数组是相同类型数据的有序集合数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成其中,每个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们2.数组声明创建首先必须声明数组变量,才能在程序中使用数组。声明语法:dataType[] arrayRefVar;//首选方法或dataType arryRefVar[];//效果相同,但不是首选方法Java语言使用new操作符来创建数组,语法如下:dataType[] arrayRefVar=
2020-07-29 22:27:30
184
原创 【笔记】Java基础——方法
Java方法1.什么是方法1)概念Java方法是语句的集合,它们在一起执行一个功能方法是解决一类问题的步骤和有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用System.out.println() : System => 类,out => 对象,println() => 方法2)设计原则方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成1个功能,这样利于我们后期的扩展。2.方法的
2020-07-28 22:01:37
180
原创 【笔记】Java基础——流程控制
Java流程控制1.Scanner对象导入java.util.Scanner包,通过Scanner类来获取用户的输入1)基本语法: Scanner sc = new Scanner(System.in);2)代码举例:import java.uitl.Scanner;public class Demo{ public static void main(String[ ] args){ //创建一个扫描器对象,用于接收键盘数据 Scanner sc = new Sc
2020-07-22 20:44:32
208
原创 【笔记】Java基础学习
Java基础1.标识符和关键字关键字标识符所有的标识符都应该以字母(A-Z或a-z)、美元符($)、**下划线(_)**开始首字符之后可以是字母、美元符、下划线或数组的任何字符组合不能使用关键字作为变量名或方法名标识符是大小写敏感的合法标识符举例:age、$salary、_value、__1value非合法标识符举例:123abc、-salary、#abc2.数据类型1)Java数据类型分为:基本类型数值类型整数类型(byte、short、int、l
2020-07-21 22:35:49
189
原创 IDEA 报错 Error:java:错误:不支持发行版本5
????在idea中创建maven运行代码时,出现以下错误:我自己用的是JDK13,这个报错应该是java版本不匹配,以下有两种解决方法:(1)第一种:①File—>Project Structure②查看Project与Module中的版本是否与本地一致③点击设置File—>Settings—>Build,Execution,Deployment—>Compi...
2020-04-29 21:34:26
751
原创 在IDEA中,避免每次创建maven都要配置
每次创建新的maven都要配置一次maven安装路径和依赖包的下载位置????是真滴烦人!????通过默认的maven设置就可以解决这个烦人的问题啦!????(1)File—>Other Settings—>Settings for New Projects…(2)依次点击 Build,Execution,Deployment—>Build Tools—>Maven根据图中注释操作...
2020-04-29 20:53:43
675
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人