zoukankan      html  css  js  c++  java
  • 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),会跳转到登录界面。

  • 相关阅读:
    PHP使用iconv函数遍历数组转换字符集
    ping localhost出现地址::1
    在 Windows 7 中禁用IPv6协议/IPv6隧道
    ping localhost 返回 ::1的导致不能打开http://localhost的原因及解决
    [LeetCode] Climbing Stairs
    [LeetCode] Binary Tree Level Order Traversal II
    [LeetCode] Set Mismatch
    [LeetCode] Power of Four
    [LeetCode] Power of Three
    [LeetCode] Power of Two
  • 原文地址:https://www.cnblogs.com/yeming/p/5419296.html
Copyright © 2011-2022 走看看