基于Springmvc的登录权限拦截器
1.什么是拦截器
拦截器是指通过统一拦截从浏览器发往服务端的请求来完成功能的增强。
使用场景:解决请求的共性问题(如:乱码问题,权限验证问题等)
2.拦截器的基本工作原理
springmvc可以通过配置过滤器来解决乱码问题
拦截器的工作原理和过滤器非常相似
3.实现拦截器
(1)编写拦截器类实现HandlerInterceptor接口
(2)将拦截器注册进Springmvc框架中
4.拦截器的方法介绍
(1)preHandle方法,在请求被处理之前进行调用(返回值:表示我们是否需要将当前的请求拦截下来,返回
false,请求被终止,返回true,将继续运行,object arg2 表示的是被拦截的请求的目标对象)
(2)postHandle方法,在请求被处理之后调用(可以通过ModelAndView参数来修改显示的视图,或修改发往
视图的方法)
(3)afterCompletion,在请求结束之后才进行调用(做资源的销毁)
5.拦截器的其他实现方式
(1)拦截器的类还可以通过实现WebRequestInterceptor接口来编写
(2)想springmvc框架注册的写法不变
(3)弊端:preHandle方法没有返回值,不能终止请求
6.拦截器和过滤器的区别:
(1)过滤器依赖于Servlet容器,基于回调函数,雅思报名官网过滤的范围大
(2)拦截器依赖于框架容器,基于反射机制,只过滤请求
7.总结:
(1)拦截器可以处理Web应用中请求的一些通用性问题
(2)共性问题在拦截器中处理,可以减少重复代码,便于维护
下面,我们就写一段实现登陆权限拦截器的代码吧!
一·编写一个继承HandlerInterceptorAdapter的类
二·在springmvc的配置文件中注册改拦截器
三·编写一个获取当前用户的工具类
好了,这样就可以实现登录权限拦截了,是不是很方便快捷啊。
基于Springmvc的登录权限拦截器的更多相关文章
- JavaWeb -- Struts 自定义拦截器, 登录权限拦截
1. 自定义拦截器, 登录权限拦截 login.jsp 登录JSP <%@ page language="java" contentType="text/html; ...
- SpringMVC中的Interceptor拦截器及与Filter区别
SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理.比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那 ...
- SpringMVC之七:SpringMVC中使用Interceptor拦截器
SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理.比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那 ...
- SpringMVC 学习笔记(六)拦截器
5.1.处理器拦截器简介 Spring Web MVC的处理器拦截器(如无特殊说明,下文所说的拦截器即处理器拦截器) 类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理. ...
- 【SpringMVC】 4.3 拦截器
SpringMVC学习记录 注意:以下内容是学习 北京动力节点 的SpringMVC视频后所记录的笔记.源码以及个人的理解等,记录下来仅供学习 第4章 SpringMVC 核心技术 4.3 拦截器 ...
- SpringMVC中使用Interceptor拦截器
SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理.比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那 ...
- SpringMVC 中的Interceptor 拦截器
1.配置拦截器 在springMVC.xml配置文件增加: <mvc:interceptors> <!-- 日志拦截器 --> <mvc:interceptor> ...
- SpringMVC中使用Interceptor拦截器顺序
一.简介 SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理.比如通过它来进行权限验 证,或者是来判断用户是否登陆,或者是像1 ...
- springMVC之mvc:interceptors拦截器的用法
1.配置拦截器 在springMVC.xml配置文件增加: <mvc:interceptors> <!-- 日志拦截器 --> <mvc:interceptor> ...
随机推荐
- TensorFlow学习笔记1-入门
TensorFlow学习笔记1-入门 作者: YunYuan *** 写在前面 本笔记是我学习TensorFlow官方文档中文版的读书笔记,由于尚未搭建好Github的个人博客的评论功能,故尚不方便与 ...
- Mac004--Tomcat安装
Mac--Tomcat安装 一.Tomcat下载 https://tomcat.apache.org/download-80.cgi 下载Tomcat注意tomcat与jdk版本要一致.jdk1.8版 ...
- Lambda -语法使用,代码简化
使用Lambda的方式实现线程 线程中()是run方法的(),可用来接受参数,格式: new Thread(()->{ System.out.println(Thread.currentThre ...
- grep命令用关系或查询多个字符串
bcmsh ps | grep -E 'port|ge2 ' bcmsh ps | grep 'port\|ge2 ' 我的目的是筛选出含有 ‘port’ 或者含有 ‘ge2 ’ 的行,上面的第一行参 ...
- direct模式下的收发
生产者 import pika import sys connection = pika.BlockingConnection(pika.ConnectionParameters( host='loc ...
- Vue小白篇 - Vue介绍
Vue ?啥是Vue?能干嘛? vue 的介绍 Vue 是一套用于构建用户界面的 渐进式框架 ,与其它大型框架不同的是, Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层 前端三大框 ...
- Git --05 Gitlab使用
目录 Gitlab使用 01. 外观配置 02. Gitlab汉化配置 03. 注册限制 04. 创建用户及组 05. 创建用户 06. 把用户添加到组 07. 创建项目 08. 推送代码到Gitla ...
- linux--mysql的安装与配置
linux centos下,mysql安装有三种方式:二进制tar包安装,rpm安装,yum安装(最简单) 查看有没有安装过: yum list installed mysql* rpm -qa | ...
- [NOIP2017普及组]跳房子(二分,单调队列优化dp)
[NOIP2017普及组]跳房子 题目描述 跳房子,也叫跳飞机,是一种世界性的儿童游戏,也是中国民间传统的体育游戏之一. 跳房子的游戏规则如下: 在地面上确定一个起点,然后在起点右侧画 nn 个格子, ...
- Java JDK1.8新特性之四大函数式接口
JDK 1.8的一些新特性 四大核心函数式接口(Consumer.Predicate.Supplier.Function),结合lambda表达式 import java.util.ArrayList ...