zoukankan      html  css  js  c++  java
  • session 超时跳转登陆页面

    /**
    * session超时跳转登陆页面
    * @author zhangdong
    * 2017年10月24日
    */
    @Aspect
    @Component
    public class SessionTimeoutAspect {
    
    private static Logger logger = Logger.getLogger(SessionTimeoutAspect.class); 
    public SessionTimeoutAspect() { 
    } 
    
    @org.aspectj.lang.annotation.Pointcut("execution(* com.jsz.peini.controller..*.*(..))") 
    public void controllerPointcut(){ 
    } 
    
    @Pointcut("execution(* com.jsz.peini.controller.mgr.UserLoginController..*(..))") 
    public void rootPointcut(){//登录登出功能不需要Session验证 
    } 
    
    @org.aspectj.lang.annotation.Pointcut("controllerPointcut()&&(!rootPointcut())")
    // @org.aspectj.lang.annotation.Pointcut("controllerPointcut()") 
    public void sessionTimeOutPointcut(){ 
    } 
    
    @Around("sessionTimeOutPointcut()") 
    public Object sessionTimeOutAdvice(ProceedingJoinPoint pjp) throws IOException { 
    Object result = null; 
    String targetName = pjp.getTarget().getClass().getSimpleName(); 
    String methodName = pjp.getSignature().getName(); 
    logger.info("----------------执行方法-----------------"); 
    logger.info("类名:"+targetName+" 方法名:"+methodName); 
    HttpServletResponse response = null; 
    for (Object param : pjp.getArgs()) { 
    if (param instanceof HttpServletResponse) { 
    response = (HttpServletResponse) param; 
    } 
    } 
    HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); 
    HttpSession session = request.getSession(); 
    if(session.getAttribute("MgrUserId")!=null){ 
    try { 
    result = pjp.proceed(); 
    } catch (Throwable e) { 
    e.printStackTrace(); 
    } 
    return result; 
    } else{ 
    logger.debug("Session已超时,正在跳转回登录页面"); 
    PrintWriter writer = response.getWriter();
    writer.write("<script>window.parent.location.href='/superOpAdmin.jsp'</script>");
    writer.flush();
    writer.close();
    } 
    return result; 
    } 
    

      

  • 相关阅读:
    [Python]机器学习:Tensorflow实现线性回归
    Python之Numpy:线性代数/矩阵运算
    特殊环境的安装教程[汇总]
    C/C++之编程语言学习资源
    Python之文件操作工具
    NLP之中文自然语言处理工具库:SnowNLP(情感分析/分词/自动摘要)
    网络分析:WireShark
    Linux/Window之定时任务脚本编写
    CSS之Background
    JavaScript之iframe页面间通信
  • 原文地址:https://www.cnblogs.com/xdcr/p/7723078.html
Copyright © 2011-2022 走看看