• 怎么给登录功能设一个访问拦截器


     1 <mvc:interceptors>
     2         <mvc:interceptor>
     3             <mvc:mapping path="/my/cbs/**"/>
     4             <mvc:mapping path="/member/**"/>
     5            .......
     6             <bean id="loginInterceptor" class="com.jinqiandun.cloud.cp.utility.LoginInterceptor"/>
     7         </mvc:interceptor>
     8     </mvc:interceptors>

    上面是在springmvc的配置文件中配置的信息。path是requestMapping的请求路径,凡是这个路径下的都会被拦截,这里的path后面的*号是代表这个路径下的所有请求。下面是java代码。

     1 /**
     2  * 登录拦截类
     3  * @author Ter
     4  *
     5  */
     6 public class LoginInterceptor extends HandlerInterceptorAdapter {
     7     @Override
     8     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
     9         String nickName  =CookieUtils.getNickName(request);
    10         if (nickName != null) {
    11             return true;
    12         }else {
    13             response.sendRedirect("/cp-web/login");
    14             return false;
    15         }
    16     }
    17  
    18     @Override
    19     public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
    20         super.postHandle(request, response, handler, modelAndView);
    21     }
    22 }

    在spring-mvc.xml文件中配置的路径被访问,都会触发这个LoginInterceptor的preHandle的方法,然后我们就可以在这个类中随便做一个判断和页面跳转,比如这里的话,我如果登录了就会保存cookie文件,从cookie中获取用户信息,如果cookie中没有任何用户信息,那么就定向跳转到登录界面,实现拦截类的功能。

    还有人会这样写,在springmvc的配置文件中,path会写“/**”,这样的话,所有的请求路径,他都会被拦截,接着就执行这个拦截类的方法,在这个方法中,会new一个String数组,里面存放着一些请求路径。比如String[] str={“/login”,"/register",............等},通过request获取到当前页面请求的url,通过遍历str数组,和url判断这个url是否包含(java的contains()方法),如果包含了,则return true,如果没有包含,则定向到登录界面且return false。

    上述两种方法各有特点。

  • 相关阅读:
    一些坑爹的错误
    鼠标键盘钩子捕获(初版)
    【Win10】我们无法更新系统保留的分区
    实验一:c++简单程序设计(1)
    《Java 8 in Action》Chapter 1:为什么要关心Java 8
    《Java 8 in Action》Chapter 2:通过行为参数化传递代码
    Java集合类综合
    Java内存模型
    你真的会阅读Java的异常信息吗?
    Java常用异常整理
  • 原文地址:https://www.cnblogs.com/TerLeeHost/p/7816940.html
Copyright © 2020-2023  润新知