SpringMVC拦截器(interceptors)

一、什么是拦截器?

spring提供的一个特殊的组件,当DispatcherServlet收到请求之后,如果有拦截器,会先调用拦截器,然后调用响应的处理器(Controller)。 注: 过滤器属于servlet规范,而拦截器属于spring框架。

二、如何写一个拦截器?

1.写一个java类,实现HandlerInterceptor接口

//实现HandlerInterceptor接口 
//可自动生成preHandle()、postHandle()、afterCompletio()方法
public class SomeInterceptor implements HandlerInterceptor{/*** DispatcherServlet收到请求之后,会先调用preHandle方法* 如果该方法的返回值为true,则继续向后调用 * 如果该方法的返回值为false,则不再向后调用* * Object handler:描述处理器方法的一个对象*/public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception {System.out.println("preHandle()");return true;}/*** 处理器(Controlle)的方法已经执行完毕* 正准备将结果(ModelAndView对象)返回* 给DispatcherServlet之前执行postHandle方法* 可以在该方法里去修改处理器返回的结果*/public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,ModelAndView modelAndView) throws Exception {System.out.println("postHandle()");}/*** 当preHandle返回值为true该方法才会执行* afterCompletion在postHandle方法执行之后才执行* * Exception ex处理处理器所抛出的异常,可以写一个拦截器用来处理处理器抛出的异常*/public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)throws Exception {System.out.println("afterCompletion()");}}

2.实现具体的拦截处理逻辑。比如:session验证

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception {System.out.println("preHandle()");HttpSession session= request.getSession();Object obj = session.getAttribute("admin");if(obj == null) {//未登录,重定向到登录界面response.sendRedirect("toLogin.do");return false;}return false;}

3.配置拦截器(springmvc配置文件中)

<!-- 配置拦截器 --><!-- 如果有多个拦截器,会按照配置的先后顺序执行 --><mvc:interceptors><mvc:interceptor><!-- 拦截器路径配置 --><!-- 拦截路径多的话会分层多加一个*号即拦截所有的请求路径为/**--><!-- 要拦截的路径 --><mvc:mapping path="/**"/><!-- 拦截器不需要拦截的路径 --><mvc:exclude-mapping path=""/><!-- 拦截器类 -->><bean class="拦截器要拦截的java代码路径"></mvc:interceptor></mvc:interceptors>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/557713.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

选择计算机系统的依据是什么,大学计算机基础 试题

大学计算机基础 试题大学计算机基础考试会出什么样的试题?大家知道吗?下面小编为大家带来大学计算机基础试题&#xff0c;仅供参考&#xff0c;希望能够帮到大家。大学计算机基础试题一、单选题练习1.完整的计算机系统由( C )组成。A.运算器、控制器、存储器、输入设备和输…

的安装方法_显卡安装方法

显卡安装方法1. 将机箱竖直站立的放置在桌面上&#xff0c;面朝机箱后面板(键鼠&#xff0c;USB&#xff0c;网线接口处)&#xff0c;取下机箱后面板右侧上下的两颗大头螺丝&#xff0c;将机箱右侧的侧面板向后拉&#xff0c;即可取下右侧面板。2. 打开机箱侧板后&#xff0c;可…

Java 中访问路径的问题

在Java中路径分为绝对路径和相对路径 访问路径 通常访问路径也就是URL&#xff0c;统一资源定位符&#xff0c;URL由两部分组成资源路径和资源名称 资源名称也就是你要访问的路径&#xff0c;就比如我的image&#xff0c;我的image是访问的控制器的一个方法再由控制器方法转跳…

黔东南天气预报软件测试,黔东南天气预报15天

发送给QQ好友★黔东南未来15天天气预报★黔东南天气预报7月22日 星期四:阵雨&#xff0c;22C~30C北风&#xff0c;小于3级黔东南天气预报7月23日 星期五:多云&#xff0c;22C~30C北风&#xff0c;小于3级黔东南天气预报7月24日 星期六:多云&#xff0c;21C~29C北风&#xff0c;…

m40型工业机器人_工业机器人选型的9大参数

工业机器人选型的9大参数By Mathieu人们经常讨论“机器人”。首先&#xff0c;对于工业自动化的行业外人士来说&#xff0c;要澄清的是工厂使用的“机器人”绝对不是类似的我的机器人女友中的类人机器人。对于自动化行业的老鸟&#xff0c;资深的机、电工程师来说&#xff0c;选…

hashcode、equals

一、hashcode是什么&#xff1f; 1、hash和hash表是什么&#xff1f; 想要知道这个hashcode&#xff0c;首先得知道hash&#xff0c;通过百度百科看一下 hash是一个函数&#xff0c;该函数中的实现就是一种算法&#xff0c;就是通过一系列的算法来得到一个hash值&#xff0…

科研工作者结合实验与计算机模拟,理论物理前沿重点实验室

中国科学院理论物理前沿重点实验室理论物理前沿重点实验室属于基础理论类实验室。实验室定位为&#xff1a;依托理论物理研究所&#xff0c;面向科学前沿&#xff0c;面向国家大科学工程&#xff0c;坚持“开放、流动、竞争、联合”&#xff0c;联合全国理论物理学工作者&#…

poi 不自动计算 设置单元格公式_Java POI:如何读取Excel单元格的值而不是计算公式?...

上面的建议对我来说不起作用cell.getRawValue()返回与AUT上的excel单元格相同的公式&#xff0c;所以写下面的函数&#xff0c;它工作&#xff1a;public void readFormula() throws IOException {FileInputStream fis new FileInputStream("Path of your file");Wo…

word怎么设置页码为第几页共几页

1.首先在WORD文档中编辑好你的文档内容&#xff1b; 2.点击插入中的页眉&#xff08;或页脚&#xff09;&#xff0c;选择“空白内容”&#xff0c;出现[在此处键入]。如下面图片所示内容&#xff1b; 3.在[在此处键入]中输入第页&#xff0c;共页&#xff1b;&#xff08;[]…

哈师大计算机大一上学期课表,哈尔滨师范大学课程表.doc

文档介绍&#xff1a;哈尔滨师范大学课程表社会与历史学院历史学专业 2009级 1 班 131 人 2013年2月27日施行科目课教师节教星期室上午下午第一节第二节第三节第四节第五节第六节第七节第八节第九节第十节星期一古代东方文明王鹤—副教授人520文革研究郑文云—副教授人520星期二…

ethercat转profinet网关_Profinet与EtherCAT网关使用方法

所谓的网关通俗来讲就是一种“协议转换器”&#xff0c;它能够将一种通信协议转换到另一种通信协议&#xff0c;满足实际应用中对通信的需求&#xff0c;从而实现投资保护的作用。Hongke Gateway模块化网关提供了一种很好的方式来快速、轻松以及经济高效的连接不同的网络&#…

Tue Jun 15 16:18:44 CST 2021 There was an unexpected error (type=Bad Request, status=400). Validatio

异常&#xff1a; 原因&#xff1a;点击链接&#xff0c;链接后边的参数值为null&#xff0c;controller中接受的对象不能接受到 id的值为null&#xff0c;不能封装到对象中 解决&#xff1a;

二级计算机access押题,全国计算机等级考试标准教程:二级Access

全国计算机等级考试标准教程&#xff1a;二级Access语音编辑锁定讨论上传视频《全国计算机等级考试标准教程二级Access》是2011年电子工业出版社出版的图书&#xff0c;作者是蒋贤维等。本书主要介绍了全国计算机等级考试二级Access的基本内容和规律技巧。书 名全国计算机等…

pythonmulti函数_python – 用于使用MultiIndex创建pandas系列的语法糖

对我来说似乎很好.您可以使用itertools.product创建元组,而不包含理解中的三个部分.但我认为这对于初学者来说同样是好的并且可读,而使用itertools的方法则不那么容易. itertools的方式是这样的&#xff1a;list(itertools.product(range(2),range(number_of_classes),range(nu…

OS复习——设备管理习题

OS复习——设备管理习题 在I/O系统中引入缓冲的主要原因是什么&#xff1f;某文件占10个磁盘块&#xff0c;现要把该文件的磁盘块逐个读入主存缓冲区&#xff0c;并送用户区进行分析。一个缓冲区与磁盘块大小相等。把一个磁盘块读入缓冲区的时间为100μs&#xff0c;缓冲区数据…

职中心得体会300字高一计算机,职业高中毕业的自我鉴定范文300字

职业高中毕业的自我鉴定范文300字自我鉴定就是把一个时段的个人情况进行一次全面系统的总结&#xff0c;自我鉴定可以让我们对自己有个正确的认知&#xff0c;不如立即行动起来写一份自我鉴定吧。我们该怎么去写自我鉴定呢&#xff1f;下面是小编精心整理的职业高中毕业的自我鉴…

navicat怎么查看数据库的url_连接数据库url怎么写

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航&#xff0c;为用户…

软件测试——语句覆盖

语句覆盖 一、定义&#xff1a; 程序中每一个语句至少能被执行一次 二、特点&#xff1a; 1、程序中每一个语句执行一次 2、对程序执行逻辑的覆盖率低&#xff0c;属于最弱的覆盖方式 3、无需测试程序的分支情况 4、无需测试程序分支判断的输入值以及输入值的组合 5、无需测试…

网络服务器最基本的是文件,你可能想知道的15个网络常用基础知识

原标题&#xff1a;你可能想知道的15个网络常用基础知识网络是一个复杂的系统&#xff0c;涉及知识很多。现在腾正小超人给大家分享15个常用的网络基础知识&#xff1a;1) 如何查看本机所开端口用netstat -a —n命令查看!再stat下面有一些英文&#xff0c;我来简单说一下这些英…

python3获取当前日期_如何在python3中获取当前日期和时间? – Python3教程

在本文中&#xff0c;你将学习如何用Python获取今天的日期和当前的日期和时间&#xff0c;我们还将使用strftime()方法以不同的格式格式化日期和时间。获取当前日期的方法有很多&#xff0c;我们将使用datetime模块的date类来完成这项任务。例1&#xff1a;Python获取今天的日期…