springmvc的拦截器使用

来源:互联网 发布:axure7.0mac中文版下载 编辑:程序博客网 时间:2024/05/17 02:13

转自博主tonytfjing的博文:
(http://blog.csdn.net/tonytfjing/article/details/39207551)
天有不测风云,今天面试问了有关springmvc拦截器的使用,可我从来没接触过,哎~,所以学习一下,通过以上博客进行了学习。

一、DispatcherServlet

在了解拦截器前先了解一下DispatcherServlet,DispatcherServlet是前端控制器,顾名思义,所有的请求都要经过DispatcherServlet来控制分发,它是配置在web.xml文件中,只有匹配<url-pattern>的请求才会允许进入springMVC框架,然后分发到目标@Controller来处理,代码如下
web.xml

二、自定义拦截器

实现springMVC拦截器,先自定义一个MyInterceptor类实现HandlerInterceptor接口,该接口提供了preHandle,postHandle,afterCompletion三个方法。
preHandle:在前端控制器处理请求之前被调用
preHandle:在前端控制器处理请求完成后,生成视图前执行
afterCompletion:该方法在前端控制器渲染了对应的视图之后执行
自定义拦截器

三、配置拦截器

在springmvc.xml文件中加入自定义的拦截器
springmvc.xml

这样就了解用拦截器完成权限管理的方式了,明天还有面试,回来后再研究研究

四、实例学习

今天继续尝试,用用户登录的实例来接着学习吧

一个User类,username,和password两个属性

web.xml文件
web.xml

UserInterceptor类(自定义拦截器),判断用户是否已经登录
自定义拦截器

springmvc.xml文件
springmvc.xml

编写两个Action,UserAction中的方法不会被拦截,而TestAction中的方法被拦截
Action

测试当用户未登录时访问TestAction中的方法,结果如下
前台跳转
可以从链接中看出,拦截器成功将请求转发到登录界面

后台输出
当然也可以从后台的打印输出看到,我们的拦截器生效了

至此拦截器也了解了不少,最近面试再遇到就是好运了,嘻嘻

原创粉丝点击