关于禁止直接访问登陆后跳转的相关界面拦截

在跳转主页的时候我们需要判断是否登录,如果直接访问主页 而没有登陆的时候则是需要被强制退出的。这就用到了所谓的拦截器。


创建一个LoginInterceptor 类,代码如下:

> /**  
>  * 登录认证的拦截器 
>    */
>    public class LoginInterceptor implements
    > HandlerInterceptor{       //创建一个log4j日志管理器的实例,用于写日志   protected Logger
    > log4j = Logger.getLogger(getClass());
    >     /** 
    >      * Handler执行完成之后调用这个方法 
    >      */  
    >     public void afterCompletion(HttpServletRequest request,  
    >             HttpServletResponse response, Object handler, Exception exc)  
    >             throws Exception {  
    >           
    >     }  
    >   
    >     /** 
    >      * Handler执行之后,ModelAndView返回之前调用这个方法 
    >      */  
    >     public void postHandle(HttpServletRequest request, HttpServletResponse response,  
    >             Object handler, ModelAndView modelAndView) throws Exception {  
    >     }  
    >   
    >     /** 
    >      * Handler执行之前调用这个方法 
    >      */  
    >     public boolean preHandle(HttpServletRequest request, HttpServletResponse response,  
    >             Object handler) throws Exception {  
    >         //获取请求的URL  
    >         String url = request.getRequestURI(); 
    >       //判断拦截的 //      log4j.info("---requestURI:" + url);
    >         //URL:login.jsp是公开的;这个demo是除了login.jsp是可以公开访问的,其它的URL都进行拦截控制   //   
    if(url.indexOf("login.json")>=0){   //            return
    > true;   //        }  
    >         if(url.indexOf("login.jsp")>=0){  
    >             return true;  
    >         }  
    >         //获取Session  
    >         HttpSession session = request.getSession();  
    >         String username = (String)session.getAttribute("username");  
    >           
    >         if(username != null){  
    >             return true;  
    >         }  
    >         //不符合条件的,跳转到登录界面   //       request.getRequestDispatcher("/view/login.jsp").forward(request,
    > response);  
    >         response.sendRedirect("/BillingSystem/");
    >         return false;  
    >     }      }

创建好了拦截器类之后,我们需要去使用这个类,在配置文件中去调用它。在本项目中使用的是SpringMvc所以在mvc-servlet文件中进行如下配置:

<mvc:interceptors>  
            <!-- 多个拦截器,顺序执行 -->  
            <mvc:interceptor>  
                 <!-- 需拦截的地址 -->  
            <mvc:mapping path="/*.json" />  
            <mvc:mapping path="/*.action" />  

            <!-- 需排除拦截的地址 -->
            <mvc:exclude-mapping path="/login.json"/>
                <bean class="com.lotuscard.javax.utils.LoginInterceptor"></bean>  
            </mvc:interceptor>  
 </mvc:interceptors> 

就如上代码所示,拦截所有.json.action请求,出去login.json以外的所有请求。拦截之后的具体操作由LoginInterceptor决定

以上就是关于登录界面的拦截器。暂时先这么多吧, 以后想到什么再来补充 。
欢迎讨论

新浪微博 @我家女人从不撒娇

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值