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),会跳转到登录界面。

posted @ 2016-04-21 23:00  长不高  阅读(182)  评论(0编辑  收藏  举报