서브렛 세션이 타임아웃하는 시간을 초 단위로 표시해야 하는 얇은 탑 프레임을 가진 웹 애플리케이션을 구축하고 있습니다.문제는 마지막 액세스 시간을 반환하는 서브렛에 대한 AJAX 호출과 inactive Interval 자체가 세션을 업데이트한다는 것입니다.그래서 last Accessed Time을 증가시키지 않는 서브렛으로 세션에 대한 정보를 얻을 수 있는 방법이 있나요?감사합니다。논문에서는 세션 만료 시간을 세션 시간 자체로 중계해서는 안 되며, 당신의 경우 현재 시간에서 로그인 시간을 줄여 카운터를 구현해야 합니다.
남은시간 = 현재시간 – 로그인시간
아약스 호출은 이 변수를 쿼리해야 합니다.문제가 해결되기를 바랍니다.
아약스 호출은 이 변수를 쿼리해야 합니다.문제가 해결되기를 바랍니다.
좀 더 자세히 물어봐도 될까요?실제 요구사항은 무엇인가요? 사용자가 로그인한 후 x초 이내에 세션 시간이 초과됩니까?이 경우 HTTPession 객체에서 getCreationTime() 메서드를 사용할 수 있습니다.http://java.sun.com/javaee/5/docs/api/javax/servlet/http/HttpSession.html#getCreationTime%28%29
remainingTimeInMilliseconds=System.currentTimeMillis-session.getCreationTime()
또는 x초간 활동이 없으면 세션 시간을 초과해야 합니까? 그러면 해주세요.remainingTimeInMilliseconds=System.currentTimeMillis-session.getLastAccessedTime()remainingTimeInMilliseconds=System.currentTimeMillis-session.getLastAccessedTime()remainingTimeInMilliseconds=System.currentTimeMillis-session.getLastAccessedTime()탑프레임이 서버에 마지막 액세스 시간을 요구할 필요는 없습니다. 모든 HTML 페이지에 정의된 변수를 마지막 액세스로 설정하는 자바스크립트 스니펫이 포함되도록 하거나 보다 편리하게는 변수를 HTTP 세션의 예상 만료일로 설정하는 것이 좋습니다. 웹페이지 작성 방법에 따라 기본 템플릿에 코드 조각을 추가하거나 모든 HTML 페이지에 필요한 코드를 포함하는 필터를 추가할 수도 있습니다.단, 서브렛 사양 IMHO에는 유효기간이 지난 후 서버가 세션을 비활성화할 수 있다고 명시되어 있기 때문에 유효기간 이후에 세션에 액세스하는 것이 실패할 것이라고 보장되지 않습니다.탑프레임이 서버에 마지막 액세스 시간을 요구할 필요는 없습니다. 모든 HTML 페이지에 정의된 변수를 마지막 액세스로 설정하는 자바스크립트 스니펫이 포함되도록 하거나 보다 편리하게는 변수를 HTTP 세션의 예상 만료일로 설정하는 것이 좋습니다. 웹페이지 작성 방법에 따라 기본 템플릿에 코드 조각을 추가하거나 모든 HTML 페이지에 필요한 코드를 포함하는 필터를 추가할 수도 있습니다.단, 서브렛 사양 IMHO에는 유효기간이 지난 후 서버가 세션을 비활성화할 수 있다고 명시되어 있기 때문에 유효기간 이후에 세션에 액세스하는 것이 실패할 것이라고 보장되지 않습니다.질문한 대로 실제로 응답한 사람은 아무도 없는 것 같습니다. 마지막 응답은 다른 리퀘스트에 필요한 정보에 가장 가까운, 아마 최선의 방법입니다. XHR활동을 신뢰하면 원하는 값으로 응답 헤더를 설정할 수 있다고 덧붙입니다.세션에 참가했지만 마지막에 접속한 시간을 갱신하지 않는 서브렛을 요약/다시 작성하도록 요청 정말 필요하다고 가정하면, 재정의된 HttpServletResponse를 갚을 재정의된 HttpServletResponse를 접속하는 필터를 사용하고 이를 실행할 필요가 있습니다. 세션 객체-get Last Accessed Time()메소드를 독자적인 메소드에서 재정의합니다(물론 실제의 세션에 속성으로 저장된다). 실제 세션의 수동 무효화를 실행할 필요가 있는 경우가 있습니다.이런 질문은 Servlet사의 시대를 나타내고 있습니다. 최신의 형식에서도 일부 저 수준 인증 메카니즘에 대한 제어가 충분하지 않고 필터를 사용해도 다시 정의가 어려운 경우가 있습니다. 이러한 제한은 AJAX 같은 기술을 사용하고 나타납니다.질문한 대로 실제로 대답한 사람은 아무도 없는 것 같아요. 마지막 답변은 다른 요청에 필요한 정보에 가장 가깝고 아마도 가장 좋은 방법일 것입니다. XHR 활동을 신뢰할 수 있다면 원하는 값으로 응답 헤더를 설정할 수 있다고 덧붙입니다.세션에 참여하지만 마지막으로 액세스한 시간을 업데이트하지 않는 서브렛을 요약/재작성하라는 요청이 정말 필요하다고 가정할 때 재정의된 HttpServletResponse를 반환하는 재정의된 HttpServletResponse를 연결하는 필터를 사용하여 이를 수행할 수 있어야 합니다. 세션 객체 – getLast Accessed Time() 메서드를 자체 메서드로 재정의합니다(물론 실제 세션에 속성으로 저장됨). 실제 세션의 자기 수동 비활성화를 실행해야 할 수 있습니다.이러한 질문은 Server 사양의 시대를 보여줍니다. 최신 형식이라도 일부 저레벨 인증 메커니즘에 대한 제어가 충분하지 않으며 필터를 사용하더라도 재정의가 어려울 수 있습니다. 이러한 제한은 AJAX와 같은 기술을 사용하여 나타납니다.