springmvc的拦截器

2018-07-19 05:37:55来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

拦截器

public class LoginInterceptor implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {
        String uri = request.getRequestURL().toString();
        if (uri.contains("login")) {
            return true;
        }
        // a)拦截用户请求,判断用户是否登录
        HttpSession session = request.getSession();
        Object username = session.getAttribute("username");
        if (username != null) {
            // b)如果用户已经登录。放行
            return true;
        }
        // c)如果用户未登录,跳转到登录页面。
        response.sendRedirect(request.getContextPath() + "/user/showlogin");
        return false;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
            ModelAndView modelAndView) throws Exception {
        //handle执行之后,返回ModelAndView之前。
        System.out.println("Interceptor1 postHandle......");
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
            throws Exception {
        // 返回ModelAndView之后。
        //可以在此处理异常
        System.out.println("Interceptor1 afterCompletion......");
    }

}

可以布置多个拦截器、

针对某种mapping配置拦截器

<bean

class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">

<property name="interceptors">

<list>

<ref bean="handlerInterceptor1"/>

<ref bean="handlerInterceptor2"/>

</list>

</property>

</bean>

<bean id="handlerInterceptor1" class="springmvc.intercapter.HandlerInterceptor1"/>

<bean id="handlerInterceptor2" cl

ass="springmvc.intercapter.HandlerInterceptor2"/>

???????针对所有mapping配置全局拦截器

<!-- 配置拦截器 -->
    <mvc:interceptors>
        <!-- 按照配置的顺序执行 -->
        <mvc:interceptor>
            <mvc:mapping path="/**"/>
            <bean class="com.itheima.springmvc.interceptor.Interceptor1"></bean>
        </mvc:interceptor>
        <mvc:interceptor>
            <mvc:mapping path="/**"/>
            <bean class="com.itheima.springmvc.interceptor.Interceptor2"></bean>
        </mvc:interceptor>
    </mvc:interceptors>

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:第三节:方法

下一篇:微信公众号客服消息提醒