2015-02-03 1 views
0

체크에 대한자바 필터의 필드 변수를 모든 세션에서 공유하지 않는 방법은 무엇입니까?

public class SessionTImeOutFilter implements Filter { 
    String check = ""; 

(가) 내 필드 변수, 즉시 나에게 몇 가지 솔루션을 제안 해주십시오. tomcat에 응용 프로그램을 배포하고 여러 사용자가 응용 프로그램에 액세스하는 경우 변수 확인이 모든 사용자 세션에서 공유됩니다.

친절하게도 변수를 유지하는 방법을 알려주십시오. 확인은 모든 세션에서 공유되지 않습니다.

미리 감사드립니다.

+1

잘못된 디자인, 모든 요청에 ​​대해 공유됩니다. jvm 당 하나의 필터 인스턴스 만 생성됩니다. check btw로 무엇을하고 싶습니까? – shikjohari

답변

0

나는 속성으로, 그것은 세션에서 저장이

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain){ 
    String check = ""; 
    //all other stuff 
} 
+0

하지만 ** 체크 ** 변수 값은 한 세션에서 동일하게 유지하고 싶습니다 .... doFilter에서 초기화하면 모든 요청에 ​​대해 다시 초기화됩니다. – ANILBABU

+0

모든 요청에서 check 값을 변경할 수 있습니까? – shikjohari

+0

네, 같은 세션의 요청이지만, 다른 세션의 요청은 아닙니다 .............. – ANILBABU

0

처럼 doFilter 방법 내부 String check = ""을 유지하는 것이 좋습니다 것입니다. 거기에 없다면, 처음 만들었습니다. 필터의 인스턴스 멤버로 삼지 마십시오.

+0

그걸 시도해도 ...... 만약 세션이 타임 아웃했다면, 나는되지 않을 것입니다. 그 가치를 얻을 수있는 위치에 .... 여기 내 목표는 내 알고리즘에서 세션 시간 초과를 찾는 것입니다 .................. – ANILBABU

+0

세션이 초과 된 경우 타임 아웃 할 세션이 없으니 걱정하지 않으시겠습니까? 여기서 결정해야합니다. 비공유 세션 속성 인 경우 세션에서 사용됩니다. 그것이 당신이 요구 한 것입니다. – EJP

관련 문제