• 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生成器
    Python函数之传参
    前端之HTML
    联合分组、子查询、视图、事务、python操作mysql、索引
    单表查询和连表查询具体操作
    字段详细操作、多表关系、外键关联和级联关系以及增、删、改的操作
    数据库与表的其他操作、字段的操作、数据类型、字段的约束条件
    协程
    初识数据库
    线程Queue、定时器、进程池和线程池、同步异步
  • 原文地址:https://www.cnblogs.com/xdcr/p/7723078.html
Copyright © 2020-2023  润新知