springmvc中拦截器的使用

拦截器的实现

1.编辑拦截器类实现HandlerInterceptor接口。

2.把拦截器注册到springmvc框架中。

3.配置拦截器的拦截规则

拦截器类:

public class LoginHandler implements HandlerInterceptor {
    @Override
    public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
            throws Exception {
    }
    /**
     * 可以通过modelandview修改传递的内容和视图
     */
    @Override
    public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
            throws Exception {
    }
    /**
     * 返回值表示是否需要将当前的请求拦截下来
     * 参数arg2表示请求的目标对象
     */
    @Override
    public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {

        if(arg0.getSession().getAttribute("name")==null){
            arg0.getRequestDispatcher("login.jsp").forward(arg0, arg1);
            return false;
        }else{
            return true;
        }
    }

}

注册拦截器(注意xml文件的头部需要加的命名空间等内容):

    <!--注册拦截器  -->
     <mvc:interceptors>
<!--          <mvc:interceptor>
             <mvc:mapping path="/json.action"/>
             <bean class="filter.LoginHandler"></bean>
         </mvc:interceptor> -->

        <bean class="filter.LoginHandler"></bean>

     </mvc:interceptors>

通过上面的代码就可以实现,在发送请求时,如果没有登录的话(登录后会保存一个session,拦截规则就是判断session),会跳转到登录界面。

时间: 2024-10-14 00:34:38

springmvc中拦截器的使用的相关文章

springmvc中拦截器与springmvc全局异常处理器的问题

最近在做一个练手的小项目, 系统架构中用了springmvc的全局异常处理器, 做了系统的统一异常处理. 后来加入了springmvc的拦截器, 为了一些需求, 在拦截器中的 preHandle 方法 中抛出了系统自定义异常, 当时有有个疑惑, 就是抛出的这个异常全局异常处理器怎么处理的. 这里的全局异常处理器时通过实现HandlerExceptionResolver这个借口实现的 要指出的是 resolveException方法 中 handler中代表的是什么,我没遇到这个问题之前我认为这玩

SpringMVC中拦截器的简单使用

SpringMVC的处理器拦截器类似于过滤器Filter,用于对处理器进行预处理和后处理. 例如做登录验证,日志,性能检测等. 一.编写拦截器,使其实现HandlerInterceptor接口 import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.HandlerInterceptor; i

springmvc中拦截器的定义和配置

package com.hope.interceptor; import org.springframework.lang.Nullable;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest;import javax.servlet.ht

SpringMVC处理器拦截器

一.简介 Spring Web MVC的处理器拦截器(如无特殊说明,下文所说的拦截器即处理器拦截器)类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理.常见应用场景如下: 日志记录:记录请求信息的日志,以便进行信息监控.信息统计.计算PV(Page View)等. 权限检查:如登录检测,进入处理器检测检测是否登录,如果没有直接返回到登录页面: 性能监控:有时候系统在某段时间莫名其妙的慢,可以通过拦截器在进入处理器之前记录开始时间,在处理完后记录结束时间,从而得到该请求

SpringMVC使用拦截器

拦截器也算得上是spring中的一大特色,即使没用过spring的拦截器至少也用过struts2的拦截器,拦截器大多数情况都是用来做权限的控制的,极少情况下用来初始化资源或释放资源.springmvc当然也可以直接使用拦截器,而且使用起来也特别简单. 一  springmvc的拦截器实现方式 springmvc实现拦截器主要有以下2种方式: 1 实现HandlerInterceptor接口 package com.sxt.interceptor; import javax.servlet.htt

SpringMVC经典系列-14自定义SpringMVC的拦截器---【LinusZhu】

注意:此文章是个人原创,希望有转载需要的朋友们标明文章出处,如果各位朋友们觉得写的还好,就给个赞哈,你的鼓励是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系[email protected],敬请朋友们斧正,谢谢. 这部分主要讲解SpringMVC的拦截器的部分,会带着大家完成定义拦截器的两种方式的实例,不多说了,开始-- SpringMVC的拦截器主要是用于拦截用户的请求,并且进行相应的处理,如:权限验证.判断登录等. 定义拦截器的两种方式,如下: 1. 实现接

详述 Spring MVC 框架中拦截器 Interceptor 的使用方法

1 前言 昨天新接了一个需要,"拦截 XXX,然后 OOO",好吧,说白了就是要用拦截器干点事(实现一个具体的功能).之前,也在网络上搜了很多关于Interceptor的文章,但感觉内容都大同小异,而且知识点零零散散,不太方便阅读.因此,正好借此机会,整理一篇关于拦截器的文章,在此分享给大家,以供大家参考阅读. 2 拦截器 2.1 概念 Java 里的拦截器是动态拦截 action 调用的对象.它提供了一种机制可以使开发者可以定义在一个 action 执行的前后执行的代码,也可以在一个

SpringMVC 登陆拦截器实现登陆控制

思路,先登陆后,将登陆信息存储在session中,然后通过拦截器,对系统中的页面和资源进行访问拦截,同时对于登陆本身相关的页面和资源不拦截. 实现方法: /**  * 登陆拦截器.  *  * @author leizhimin 2014/6/26 16:08  */ public class LoginInterceptor extends HandlerInterceptorAdapter {     private static final String[] IGNORE_URI = {"

shiro中拦截器机制

8.1 拦截器介绍 Shiro使用了与Servlet一样的Filter接口进行扩展:所以如果对Filter不熟悉可以参考<Servlet3.1规范>http://www.iteye.com/blogs/subjects/Servlet-3-1了解Filter的工作原理.首先下图是Shiro拦截器的基础类图: 1.NameableFilter NameableFilter给Filter起个名字,如果没有设置默认就是FilterName:还记得之前的如authc吗?当我们组装拦截器链时会根据这个名