zoukankan      html  css  js  c++  java
  • 08springmvc拦截器

    springmvc 编写拦截器类,主要实现 org.springframework.web.servlet.HandlerInterceptor 接口
    package com.fz.interceptor;
    import org.springframework.web.servlet.HandlerInterceptor;
    import org.springframework.web.servlet.ModelAndView;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    /**
    * Created by webrx on 2017-06-29.
    */
    public class TestInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object o) throws Exception {
    System.out.println("preHandle");
    return true;//通过拦截器
    }

    @Override
    public void postHandle(HttpServletRequest req, HttpServletResponse resp, Object o, ModelAndView mv) throws Exception {
    System.out.println("postHandle");
    }

    @Override
    public void afterCompletion(HttpServletRequest req, HttpServletResponse resp, Object o, Exception e) throws Exception {
    System.out.println("afterCompletion");
    }
    }

    public class MyInterceptor implements HandlerInterceptor {

    @Override
    public void afterCompletion(HttpServletRequest req, HttpServletResponse res, Object o, Exception e) throws Exception {
    System.out.println("拦截器最后执行");
    }

    @Override
    public void postHandle(HttpServletRequest req, HttpServletResponse res, Object o, ModelAndView mv) throws Exception {
    System.out.println("拦截器-处理后");
    }

    @Override
    public boolean preHandle(HttpServletRequest req, HttpServletResponse res, Object o) throws Exception {
    System.out.println("处理前");
    //return false; 拦截器 不通过拦截器
    return true; //通过拦截器
    }
    }

    src/main/resources/mvc.xml 核心配置文件配置拦截器
    <!-- 配置拦截器 -->
    <mvc:interceptors>
    <mvc:interceptor>
    <mvc:mapping path="/mydown"/>
    <bean class="com.fz.interceptor.TestInterceptor"/>
    </mvc:interceptor>
    </mvc:interceptors>

    <!-- 配置项目所有拦截器 -->
    <!-- 项目拦截器 -->
    <mvc:interceptors>
    <mvc:interceptor>
    <mvc:mapping path="/admin/**"/>
    <mvc:mapping path="/**"/> 拦截所有路径
    <mvc:exclude-mapping path="/ok"/> exclude 排除相关的路径
    <mvc:exclude-mapping path="/ccc"/>
    <!--<mvc:exclude-mapping path="/user/**"/>--> 排除
    <bean class="com.interceptors.MyInterCeptor"/>
    </mvc:interceptor>
    </mvc:interceptors>


    编写实现安全登录的拦截器
    --------------------------------------------------------------------------
    编写拦截器类,实现org.springframework.web.servlet.HandlerInterceptor
    src/main/java/com/fz/interceptor/AuthInterceptor.java
    package com.fz.interceptor;
    import org.springframework.web.servlet.HandlerInterceptor;
    import org.springframework.web.servlet.ModelAndView;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    /**
    * Created by webrx on 2017-06-30.
    */
    public class AuthInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest req, HttpServletResponse res, Object o) throws Exception {
    boolean flag = true;
    HttpSession s = req.getSession();
    if(s.getAttribute("admin")==null){
    flag = false;
    //转发跳转
    req.getRequestDispatcher("login.jsp").forward(req,res);
    //res.sendRedirect("login.jsp"); 重定向跳转
    }
    return flag;
    }

    @Override
    public void postHandle(HttpServletRequest req, HttpServletResponse res, Object o, ModelAndView mv) throws Exception {
    }
    @Override
    public void afterCompletion(HttpServletRequest req, HttpServletResponse res, Object o, Exception e) throws Exception {
    }
    }

    配置resources/mvc.xml 文件
    <!-- 配置拦截器 -->
    <mvc:interceptors>
    <!-- 拦截器简单测试 -->
    <mvc:interceptor>
    <mvc:mapping path="/mydown"/>
    <bean class="com.fz.interceptor.TestInterceptor"/>
    </mvc:interceptor>

    <!-- 安全登录拦截器 -->
    <mvc:interceptor>
    <mvc:mapping path="/admin/**"/>
    <mvc:exclude-mapping path="/admin/login"/>
    <mvc:exclude-mapping path="/admin/login.jsp"/>
    <mvc:exclude-mapping path="/admin/check"/>
    <bean class="com.fz.interceptor.AuthInterceptor"/>
    </mvc:interceptor>
    </mvc:interceptors>

    怕什么真理无穷,进一步有一步的欢喜
  • 相关阅读:
    BZOJ 1036 树的统计 | 树链剖分模板题
    BZOJ 3295 动态逆序对 | CDQ分治
    Luogu 3810 & BZOJ 3262 陌上花开/三维偏序 | CDQ分治
    BZOJ 2152 聪聪可可 | 树的点分治
    BZOJ 2458 最小三角形 | 平面分治
    51nod 1564 区间的价值 | 分治 尺取法
    Luogu 1429 平面最近点对 | 平面分治
    Codeforces 633C Spy Syndrome 2 | Trie树裸题
    一棵简单能用的左偏树
    【网络流24题】餐巾计划(图解)
  • 原文地址:https://www.cnblogs.com/Mkady/p/7200866.html
Copyright © 2011-2022 走看看