
SSM 框架
目前业界流行的框架组合:SSM。SSM是作为JAVA程序员必备必知必会的技能。
地球村公民
这个作者很懒,什么都没留下…
展开
-
Java Shiro 安全框架:(十)自定义 Realm 实现授权
自定义 Realm 实现授权我们仅仅通过配置文件指定授权是非常的不灵活的在实际的应用中我们是将用户的信息和合权限信息保存到数据库中,我们是从数据库中获得用户的信息 ,使用 JDBCRealm 进行授权 。使用 JDBCRealm 操作的时候也不是很灵活。所以我们一般使用自定义 Realm 实现授权。代码实现:package com.shiro;import org.apache.shiro.SecurityUtils;import org.apache.shiro.authc.Incor原创 2020-07-01 20:38:43 · 351 阅读 · 0 评论 -
Java Shiro 安全框架:(九)授权
授权1.一般授权2.Shiro 中的授权检查的 3 种方式1.一般授权授权:给身份认证通过的任授予某些资源的访问权限权限的粒度 粗粒度 细粒度粗粒度User 具有 CRUD 的操作 通常指的是表的操作细粒度只允许查询 id=1 的用户 使用业务代码实现Shiro 的授权是粗粒度角色:角色就是权限的集合代码实现:package com.shiro1;import org.apache.shiro.SecurityUtils;import org.apache.sh原创 2020-07-01 20:32:38 · 194 阅读 · 0 评论 -
Java Shiro 安全框架:(八)加密算法
加密算法1.手动处理数据时,自行使用MD5加密2.使用Shiro的MD5方式进行加密在身份认证的过程中往往都会涉及到加密,如果不加密,这个时候信息就会非常的不安全,shiro 中提供的算法比较多如 MD5 SHA 等1.手动处理数据时,自行使用MD5加密package com.shiro3;import org.apache.shiro.crypto.hash.Md5Hash;public class TestDemo { public static void main(Str原创 2020-07-01 20:03:49 · 437 阅读 · 0 评论 -
Java Shiro 安全框架:(七)自定义 Realm
自定义 Realm1.为什么使用自定义 Realm2.解决方案3.代码实现1.为什么使用自定义 Realm我们使用 JDBCRealm 的时候发现,shiro 的底层自己封装了数据库表的名称和字段的名称,这样就造成了使用起来非常不方便2.解决方案自定义 Realm我们如果自己定义 realm 的话,可以实现这个接口AuthorizingRealm3.代码实现导包:数据库创建:[main]#设置securityManager中realmuserRealm=com.shiro2原创 2020-07-01 19:42:03 · 234 阅读 · 0 评论 -
Java Shiro 安全框架:(六)认证策略-6500字匠心出品
认证策略1.AtLeastOneSuccessfulStrategy2.FirstSuccessfulStrategy3.AllSuccessfulStrategy全部三个例子只需要更改配置验证器最后的认证策略就行了导包:数据库创建:规定了如果有多个数据源的时候应该如何操作1.AtLeastOneSuccessfulStrategy如果一个(或更多)Realm 验证成功,则整体的尝试被认为是成功的。如果没有一个验证成功,则整体尝试失败 类似于 java 中的 &[ma原创 2020-07-01 19:31:44 · 347 阅读 · 0 评论 -
Java Shiro 安全框架:(五)Shiro中的JDBCRealm
Shiro中的JDBCRealm导包:数据库创建(必须是这样的一点都不能错):实现代码:package com.bjsxt.shiro1;import org.apache.shiro.SecurityUtils;import org.apache.shiro.authc.IncorrectCredentialsException;import org.apache.shiro.authc.UnknownAccountException;import org.apache.shiro原创 2020-07-01 19:10:57 · 267 阅读 · 0 评论 -
Java Shiro 安全框架:(四)Shiro 认证流程简易描述
Shiro 认证流程简易描述通过 shiro 相关的 API 创建了 SecurityManager 以及获得 subject 实例封装了 token 信息具体描述:通过 subject.login(token)进行用户认证 Subject 接受 token 信息通过 DelegatingSubject 将 token 委托给 securityManager 完成认证securityManager 通过使用 DefaultSecurityManager 完成相关功能由 DefaultS原创 2020-07-01 18:57:20 · 249 阅读 · 0 评论 -
Java Shiro 安全框架:(三)Shiro 验证时异常对照
Shiro 验证时异常对照DisabledAccountException 账户失效异常ConcurrentAccessException 竞争次数过多ExcessiveAttemptsException 尝试次数过多UnknownAccountException 用户名不正确IncorrectCredentialsException 凭证(密码)不正确ExpiredCredentialsException 凭证过期使用 shiro 做异常处理的时候,尽量把异常信息表示的婉转一点,这 样原创 2020-07-01 18:50:41 · 394 阅读 · 0 评论 -
Java Shiro 安全框架:(二)Shiro 的认证
Shiro 的认证第一:导包第二:书写 shiro.ini 文件[users]DQC=123DQCGM=root第三:书写测试代码package com.shiro1;import org.apache.shiro.SecurityUtils;import org.apache.shiro.authc.AuthenticationException;import org.apache.shiro.authc.IncorrectCredentialsException;impo原创 2020-07-01 18:43:22 · 263 阅读 · 0 评论 -
Java Shiro 安全框架:(一)Shiro 的简介
Shiro 的简介1.为什么学习 Shiro2.解决的方案3.什么是 shiro4.Shiro 中的体系的组成5.shiro 的架构1.为什么学习 Shiro目前使用遇到的问题?使用 RBAC 进行角色访问控制的时候,代码书写起来相对比较麻烦目前学习的写的操作代码整体不太安全2.解决的方案Spring securing 安全框架 缺点:基于 Spring 之上的,局限性比较大shiro javaEE javaSE 分布式项目3.什么是 shiroApache Shiro 是一个强原创 2020-07-01 08:58:42 · 394 阅读 · 0 评论 -
Java Spring MVC 框架:(九)拦截器的使用
拦截器的使用1.理解示意图2.内容原理3.代码实现1.理解示意图蓝色为拦截器,很直观…蓝=拦,手动滑稽2.内容原理使用 SpringMVC 的拦截器:原理:在 Servlet 和控制器单元方法之间进行拦截使用:创建拦截器类,创建一个实现了 HandlerInterceptor 接口的 java 类并复写方法preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2)作用:拦截单元方法,原创 2020-06-30 15:50:07 · 297 阅读 · 0 评论 -
Java Spring MVC 框架:(八)过滤器解决中文乱码
过滤器解决中文乱码1.使用过滤器解决中文乱码(POST乱码)2.使用Spring 中提供字符编码过滤器1.使用过滤器解决中文乱码(POST乱码)设立过滤器:package com.filter;import javax.servlet.*;import java.io.IOException;public class EncFilter implements Filter { String enc; @Override public void init(Filte原创 2020-06-30 15:31:54 · 316 阅读 · 0 评论 -
Java Spring MVC 框架:(七)利用SpringMVC进行文件下载
利用SpringMVC进行文件下载package com.controller;import com.pojo.Student;import org.apache.commons.io.IOUtils;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.multi原创 2020-06-30 15:23:00 · 455 阅读 · 0 评论 -
Java Spring MVC 框架:(六)利用SpringMVC进行文件上传-小5000字 匠心出品
SpringMVC中文件上传1.文件上传2.含有条件的文件上传操作1.文件上传<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>用户注册</title></head><body><%-- 必须注意: [A] 提交方式method="post" [B]en原创 2020-06-30 15:11:35 · 209 阅读 · 2 评论 -
Java Spring MVC 框架:(五)SpringMVC中的自定义视图解析器
SpringMVC中的自定义视图解析器先决条件:我们平时的jsp文件都是放到web目录下,现在我们如果把jsp文件放到web-inf下,就发现没有办法访问,这样的设计的目的就是为了提高项目访问的安全性遇到的问题:放到web-inf下的文件该如何访问呢?解决的方案:WEB-INF下的所有文件必须通过转发的形式访问方式一<%--转发到指定的页面中--%> <jsp:forward page="WEB-INF/update.jsp"></js原创 2020-06-30 08:55:30 · 362 阅读 · 0 评论 -
Java Spring MVC 框架:(四)SpringMVC中的转发和重定向
SpringMVC中的转发和重定向代码模拟:说明全在注释中,方便直接,一定要看!!!!<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.o原创 2020-06-30 08:44:16 · 271 阅读 · 0 评论 -
Java Spring MVC 框架:(三)SpringMVC结合Ajax
SpringMVC结合Ajax代码模拟:说明全在注释中,方便直接,一定要看!!!!package com.pojo;public class Student { private int age; private String name; private String sex; public Student(int age, String name, String sex) { this.age = age; this.name原创 2020-06-30 08:13:11 · 328 阅读 · 0 评论 -
Java Spring MVC 框架:(二)SpringMVC中参数处理
SpringMVC中参数处理代码模拟:注释里有说明!!!package com.controller;import com.pojo.User;import org.springframework.format.annotation.DateTimeFormat;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.PathVariable;import原创 2020-06-29 16:45:11 · 218 阅读 · 0 评论 -
Java Spring MVC 框架:(一)SpringMVC的简介与框架搭建
SpringMVC的简介与框架搭建1.Spring mvc 的概念2.SpringMVC的框架搭建为什么学习SpringMVC :我们发现,每当用户发送一个请求,就对应后台一个servlet,如果用户有100个请求,这个时候就需要用户书写100个servlet使用现在servlet进行页面数据接受的时候,我们发现相当的麻烦我们书写的java代码和servlet 之间的耦合太高1.Spring mvc 的概念Spring MVC属于SpringFrameWork的后续产品,已经融合在Spr原创 2020-06-29 15:56:11 · 376 阅读 · 0 评论 -
Java Spring 框架:(十一)Spring中注解支持
Spring中注解支持1.Spring的常见注解及其作用2.AOP的常见注解及其作用3.注意:4.简易案例1.Spring的常见注解及其作用@Component 创建类对象,相当于配置< bean/>bean的ID默认为类名首字母小写,也可以指定ID,例如@Component(“DQC”)@Service 与@Component功能相同写在ServiceImpl类上@Repository 与@Component功能相同写在数据访问层类上@Controller 与@Compone原创 2020-06-28 14:40:56 · 291 阅读 · 0 评论 -
Java Spring 框架:(十)Spring中属性文件使用(Scope作用域)
Spring中属性文件使用(Scope作用域)1.Scope作用域讲解Spring中也是支持属性文件的读取操作读取属性文件<context:property-placeholder location="classpath:jdbc.properties"/> 1.Scope作用域讲解如何使用spring的作用域:<bean id="XXX" class="XXX.XXX.XX.XXX" scope="singleton"/>< bean>的一个属性原创 2020-06-28 14:26:42 · 295 阅读 · 0 评论 -
Java Spring 框架:(九)TX声明式事务
TX声明式事务1.代码实现:2.脏读、不可重复读、幻读3.事务的四大性质4.Spring的事务管理配置属性讲解:Spring 中的内容 :IOC:控制反转–帮助我们创建对象的也是解耦AOP:面向切面–提升代码的扩展性和解耦TX:声明式事务为什么使用事务 :我们当时学习mybatis的时候知道,mybatis中的事务和JDBC事务是一致的,那么Spring中式如何进行事务管理的呢?事务管理:编程式事务:整个事务管理都是需要程序员自己手动编写,自己提交或者回滚声明式事务:就是整个事务原创 2020-06-28 14:19:29 · 683 阅读 · 0 评论 -
Java Spring 框架:(八)AspectJ
AspectJ我们目前使用AOP的不足?我们目前使用的schema Baes 实现的方式,发现了每一个通知都需要实现对应的接口,每一个接口中就是一个方法,这样的书写方式比较的麻烦的,我们想所有的方法都在一个类中书写就比较方便了Aspect J方式实现:Aspect J方式实现我们发现 Aspect J的方式虽然可以把所有的通知都结合到一起,书写方便,但是获得切点中的参数和切点所在的类的时候比较的繁琐两种方式的使用场景:schema base :如果我们需要使用切点中的参数或者切点所在的原创 2020-06-28 13:19:13 · 296 阅读 · 0 评论 -
Java Spring 框架:(七)Schema base
这里写目录标题1.具体实现步骤2.实现步骤3.注意1.具体实现步骤确定切点—a()通知–织入成切面2.实现步骤导入jar包:aopalliance.jaraspectjweaver.jarcommons-logging-1.1.3.jarspring-aop-4.1.6.RELEASE.jarspring-aspects-4.1.6.RELEASE.jarspring-beans-4.1.6.RELEASE.jarspring-context-4.1.6.RELEASE.ja原创 2020-06-28 13:06:46 · 245 阅读 · 0 评论 -
Java Spring 框架:(六)SpringAOP简介
SpringAOP简介1.Aop的概念2.Aop中需要知道的要素3.Aop实现的方式4.简略示意图为什么学习SpringAop?IOC:帮助我们创建对象的Aop:提升代码的扩展性1.Aop的概念Aop:Aspect Oriented Programming中文含义:面向切面编程通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率2.Aop中需要知道原创 2020-06-28 12:49:05 · 241 阅读 · 0 评论 -
Java Spring 框架:(五)代理模式详解
代理模式详解1.代理模式简介2.静态代理3.JDK动态代理4.CGLIB动态代理1.代理模式简介设计模式:是为了解决某一类问题的产生代理模式分为:静态代理动态代理[JDK动态代理、CGLIB动态代理]代理模式的三个要素抽象的类或者接口 —完成一件怎样的事情被代理对象—事情操作具体内容代理对象----帮助我们完成事情的同是可以增加其他的功能具体的例子: 我们找中介租房子抽象的类或者接口–租房子被代理对象—房东代理对象—中介代理模式的好处 :房东可以安心的做自己的事情–(被代理对原创 2020-06-27 16:20:34 · 290 阅读 · 0 评论 -
Java Spring 框架:(四)SpringDI的注入方式
SpringDI的注入方式1.DI简介2.DI注入的方式1.使用有参构造器方式进行注入2.使用set方法进行注入3.自动注入3.DI其他类型值的注入1.array2.list3.set4.map为什么使用DI(依赖注入):作用:给创建好的对象中的全局的属性或者对象进行赋值的操作1.DI简介英文全称(Dependency Injection)中文名称:依赖注入依赖:一个类在另一个类中作为全局属性时注入:通过外部给自己属性(或其他内容)进行类与类之间的关系:1.继承(官方名称:泛化)原创 2020-06-27 09:33:37 · 304 阅读 · 0 评论 -
Java Spring 框架:(三)Scope属性
Scope属性< bean>的一个属性,控制如何实例化对象2.在Spring中每个对象默认都是单例的(有效范围:同一个< bean>标签)Scope属性可取值:singleton: 默认值,单例的.使用ApplicationContext启动时实例化对象prototype:原型.每次调用时实例化.request:每次请求时实例化对象.session:每次产生session(HttpSession)时实例化application:产生application对象时原创 2020-06-26 16:18:00 · 376 阅读 · 0 评论 -
Java Spring 框架:(二)SpringIOC的实现-5000字匠心出品
SpringIOC的实现1.IOC解释2.代码实现3.使用无参构造器实现IOC4.使用有参构造器实现IOC5.使用工厂模式实现IOC责任链:我们使用mvc进行开发的时候,数据在各层之间进行传递,数据在业务上构成一个链条,这个链条称之为责任链基于责任链开发的缺点:基于责任链开发模式,我们发现代码层和层之间相互调用,造成了层和层的耦合性太高了我们写代码的时候讲究的原则–低耦合 高内聚解决的方案:Spring IOC : 控制反转控制:就是指的的Spring创建对象的过程反转:原创 2020-06-26 10:35:51 · 244 阅读 · 0 评论 -
Java Spring 框架:(一)Spring内容简介以及简易环境搭建
Spring内容简介1.Spring框架简介2.官方目录介绍1.官方压缩包目录介绍2.Schema和DTD的区别和联系3.从Spring3开始把jar拆分成了多个.4.官方结构图3.环境搭建目前遇到的问题:我们现在使用的mvc模式,发现层和层之间的耦合性太高了目前书写代码的后期的扩展性不高解决方案:Spring 技术 Spring 是解决业务层和其他各层之间的耦合问题1.Spring框架简介发明人(Rod Johnson)音乐博士,计算机本科.轮子理论:不要重复发明轮子---原创 2020-06-26 09:43:41 · 264 阅读 · 0 评论