zoukankan      html  css  js  c++  java
  • 怎么给登录功能设一个访问拦截器

     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。

    上述两种方法各有特点。

  • 相关阅读:
    利用Intelligencia.UrlRewriter.dll实现URL重写
    IIS环境下快速安装、配置和调试PHP5.2.0
    IIS6的PHP最佳配置方法
    PHP $_FILES详解
    一个顶N个的NextResult
    mysql 按年度、季度、月度、周、日SQL统计查询
    Windows Server 2003 “Loaded Configuration File none”未加载php.ini的解决办法
    windows 7 旗舰版,有效注册码
    php5调用web service (笔者测试成功)
    WEB架构师成长之路之一走正确的路
  • 原文地址:https://www.cnblogs.com/TerLeeHost/p/7816940.html
Copyright © 2011-2022 走看看