2016-08-25 3 views
0
@Override 
    public void sessionDestroyed(HttpSessionEvent arg0) 
    { 
     boolean isRemoved = sessionIdSet.remove(arg0.getSession().getId()); 
     if (isRemoved) 
     { 
      arg0.getSession().invalidate(); 
      System.out.println(arg0.getSession().getAttribute("userName")); 
      System.out.println("session destroyed"); 
     } 
    } 

を破壊されても、古いセッション値をフェッチ属性userNameは、ログイン時にtestUserだったとします。だから私のJavaコンソールでタイムアウトした後、null and session destroyedが表示されます。それは私が私のjspで次の手順を実行したときに意味nullの場合、だから私はnullを取得する必要がありますが、代わりに、まだ私は、Springインターセプターには、セッションが

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws ServletException { 

     boolean allowRequest = true; 
     String requestUri = request.getRequestURI().toString(); 
     HttpSession session = request.getSession(false); 
     logger.info("Pre-intercepting request URI: " + requestUri); 
     try { 
     if(null != session) { 
      String sessionBelongsTo = (String) session.getAttribute("CUR_TYPE"); 
      String user = (String) session.getAttribute("userName"); 
      System.out.println(user); 

      if(!requestUri.endsWith("/login") && !requestUri.endsWith("/loginauth") && !requestUri.endsWith("sap-ui-core.js") && !requestUri.endsWith("/main")) { 
        if(null == user) { 
         logger.info("" 
           + "Login required, redirecting to LOGIN page"); 
          response.sendRedirect(request.getContextPath() + "/login"); 
          allowRequest = false; 
        } 
        else { 
         logger.info("Login not required"); 
         } 
       } 
      } 
     else{ 
      logger.debug("session is null.redirecting to login"); 
      session = request.getSession(); 
      response.sendRedirect(request.getContextPath() + "/login"); 
      allowRequest = false; 
     } 
     }catch(IOException ioe) { 
      logger.info(ioe.getMessage()); 
      allowRequest = false; 
     } 
      return allowRequest; 
     } 

使用を使用してtestUser

$("body").click(function(event){ 
      var property="<%=session.getAttribute("userName")%>"; 
      //Here I expect property to be null as session is destroyed 
       //and it prints null in java so it should also here. 
      alert(property); 
      //But what i get here is testUser 
    } 

を取得しますインターセプタはリダイレクトコールGET http://localhost:9090/app/loginを生成しますが、これは成功していますが、起こる

答えて

関連する問題