首页 > Web开发 > 详细

SSM框架项目的mvc拦截器

时间:2019-04-03 12:37:59      阅读:131      评论:0      收藏:0      [点我收藏+]

为了防止用户在不登录的情况下通过并接请求直接访问系统,我们需要通过session和拦截器来防止这样的情况。

拦截器的配置:

为拦截器建立一个包:interceptor,并在包里建立 LoginInterceptor 拦截器类

技术分享图片

拦截器需要 implements HandlerInterceptor,并实现 HandlerInterceptor 的方法:

/**
 * 登录拦截器
 */
public class LoginInterceptor implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {

        HttpSession session = httpServletRequest.getSession();
        if ( session.getAttribute("LOGIN_USER") != null ){
            return true;
        }else {
            httpServletResponse.sendRedirect( httpServletRequest.getContextPath() + "/gradu/dologin");
            return false;
        }
    }

    @Override
    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {

    }

    @Override
    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {

    }
}

配置spring-mvc文件:

<!--拦截器-->
    <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/**" />
            <mvc:exclude-mapping path="/gradu/dologin" />
            <bean class="com.hwl.interceptor.LoginInterceptor"></bean>
        </mvc:interceptor>
    </mvc:interceptors>

注意:

<mvc:mapping path="/**"/> 是已经拦截了所有请求,包括登录,

如果后来想不拦截某个页面,就添加:<mvc:exclude-mapping path="/system/login" />

另外。记得登录时添加session。

 

SSM框架项目的mvc拦截器

原文:https://www.cnblogs.com/ynhwl/p/10647976.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!