2013-05-06 2 views
1

Struts Action 클래스에서 처리하는 요청이있는 웹 응용 프로그램이 있습니다.런타임시 서버에 데이터를 유지하는 기본 방법은 무엇입니까

UI가 단일 요청에서 30 개의 변수에 대한 데이터를 전송한다고 가정 해 보겠습니다. 액션 클래스는 요청을 처리하고 자바 객체에 30 개의 변수를 저장합니다.

요청 범위 (서버가받은 요청에 대해 클라이언트에 응답을 보내고 데이터를 유지해야하는 경우에도)를 초과하여 데이터를 유지해야합니다.이 지속 된 데이터에 의존하는 다른 서블릿이 있기 때문에 UI를 통해 업데이트 된 30 개의 변수).

방법은 지속성 :

  1. 스토어를 DB에
  2. 사용 JPA
  3. 를 사용하여 정적 변수를.

위는 사이에서 선호 MQ를 사용

  • ? 제 3의 옵션이 좋지 않다고 생각합니다. UI를 1 분마다에 대한 요청 (30 보유 문자열 가변 데이터)를 전송

    • :

      라이트 포인트 나은 투명도를 갖도록. 1 분마다 영구 데이터가 으로 수정되어야합니다.

    • 이 데이터 유지에 의존 다른 서블릿 방법
      요청과 관련된 없기 때문에 전 세션 컨텍스트 공유 될 것으로 판단된다.

  • +1

    정적 변수를 사용하지 마십시오. –

    +0

    데이터를 저장할 위치를 알아야한다는 요구 사항에 따라 달라집니다. 요청 속성에 모든 데이터를 전달할 수 있으며 데이터베이스 상호 작용이나 HTTP 세션 (ab) 사용이 필요하지 않습니다. –

    +0

    @LuiggiMendoza 호기심에서 HTTP 세션의 단점은 무엇입니까? – austin

    답변

    2

    HttpSession을 사용할 수 있습니까? 세션에 데이터를 저장하여 서버 측에 저장 한 다음 요청간에 지속되고 다른 서블릿에서 사용할 수 있습니다.

    +0

    다른 질문으로 대답하고 있습니까? –

    +0

    당신은 뭔가를 말하고 있거나 또 다른 질문을하고 있습니까? 미안하지만 저항 할 수는 없지만 세션에서 데이터를 저장하는 것은 그것을 악용 할 때 나쁜 생각입니다 – jsedano

    +0

    4 가지 옵션 중 하나가 아니 었습니다. 그래서 나는 아마도 그것이 이미 고려되었다고 생각했습니다. – austin

    1

    정보가 충분하지 않습니다. 그것은 정말로 당신이 정성 들여주지 않은 많은 다른 요인 (앱이하는 일, 얼마나 많은 데이터 등)에 달려 있습니다. 이러한 모든 접근법은 특정 상황에서 올바른 접근 일 수 있습니다. 정적 변수 옵션조차 약간의 기괴한 경우에 맞을 수 있습니다.

    +0

    +1 물론, 다양한 클라이언트간에 같은 데이터를 공유해야 할 때처럼 정적 변수를 생각할 수 있고, 다시 데이터베이스를 느낄 수있다. 더 안전한 것입니다. – jsedano

    +0

    정적 변수 **는 다중 스레드 환경에서 절대로 ** 최상의 솔루션입니다. –

    +0

    매우 잘 동기화 된 싱글 톤 ... 나는 반 패턴이라고 알고 있습니다 ...하지만 때때로 작동합니다 – jsedano

    관련 문제