2010-06-08 5 views
0

검색 양식에 채워진 검색 기준에 따라 일치하는 사용자 레코드를 표시하는 websphere 포털 서버에서 실행중인 한 응용 프로그램의 홈 페이지에 "사용자 검색"포틀릿이 하나 있습니다. 결과 페이지에 "입력으로 돌아 가기 검색"링크가 있어야합니다. 클릭하면 입력 된 JSP 페이지에 채워진 양식이 표시되어야합니다.IE에서 새 탭을 클릭하거나 websphere portal에서 mozilla를 클릭하면 새 세션을 시작하는 방법은 무엇입니까?

같은 IE 브라우저의 두 개의 다른 탭에서 응용 프로그램을 열고 일부 검색 기준을 제공하고 동시에 다른 브라우저의 다른 IE 탭에서 다른 입력을 검색하면 문제가 발생합니다.) 그런 다음 이전 탭으로 돌아가서 "입력으로 돌아 가기"링크를 클릭하면 첫 번째 입력을 표시하는 대신 다음 IE 탭에 입력 한 입력이 표시됩니다.

포틀릿 세션을 통해 bean (form bean)을 설정하고 가져 오는 중입니다. 그러나 동일한 IE의 두 diff 탭에서 동일한 사용자 세션이됩니다 (동일한 포틀릿 세션 일 수 있습니다).

두 탭이 검색 결과를 독립적으로 저장하도록 수정하려면 어떻게해야합니까?


여기에서 주목해야 할 한 가지 내가 로그인하지 않고이 "사용자 검색"응용 프로그램에 액세스 할 수 있습니다. 그것은이 경우 기본 포틀릿 세션을 복용해야합니다 그래서. 일단 로그인하고 검색하면 어떻게됩니까? 포틀릿 세션과 http 세션을 덮어 씁니까?

답변

3

기본적으로 사용자의 세션이 두 탭에서 동일하다는 사실 때문에 문제가 발생하므로 사용자가 저장 한 데이터는 저장하지 않으면 탭간에 다를 수 있습니다. 각 검색에 ID를 할당하고 세션의 컬렉션에 저장합니다. 그런 다음 "검색 입력으로 돌아 가기"버튼을 그릴 때 검색 ID를 추가하면 입력 페이지를 작성할 때 올바른 검색을 끌어낼 수 있습니다.

또는 세션에 저장하는 대신 검색 문자열을 검색 문자열로 게시하여 서버 메모리를 절약 할 수 있습니다. 당신이 무엇을 설명

+0

안녕하세요. 정보를 제공해 주셔서 감사합니다. "검색 입력으로 돌아 가기"링크에 검색 ID를 추가하는 방법과 양식이 jsp.if 인 검색 ID를 식별하는 방법에 대해 조금 더 설명해주십시오. 그러면 그것은 나를 위해 위대 할 것입니다. – ha22109

+0

@ ha22109 Jonathan이 맞습니다. 여러 동시 로그인은 WebSphere Portal에서 지원되지 않습니다. 귀하의 브라우저는 동일한 세션을 공유하므로 문제가 발생할 수 있으며 귀하가 성취하고자하는 것은 제품에서 지원되지 않습니다. – erloewe

0

은 웹 응용 프로그램에 의해 직면 상당히 일반적인 문제입니다 - 나는 공식 용어는 conversations 생각 - 세션 범위와 요청 범위 사이에서 무언가를 지원할 필요가있는 .

일부 웹 프레임 워크는이 개념을 지원하지만 일부는 지원하지 않습니다. 포틀릿 스펙은 out-of-the-box를 지원하지 않습니다 (어쩌면 Websphere에서 특정 것이 있습니다).

대화에 대한 지원을 다시 만드는 한 가지 방법은 생성 된 HTML에 대화 ID를 저장하는 것입니다. 이렇게하면 탭당/창인 ID를 가질 수 있습니다. 갑자기 요청에 이전 ID가 수신되면 이전 페이지 (사용자가 뒤로 버튼을 사용한 경우) 또는 다른 탭에서 요청한 것입니다.

그건 대략적인 스케치입니다. 나는이 문제에 관해 웹상에서 좋은 자료가있을 것이라고 확신한다. 그렇지 않으면 또 다른 질문을 낳는다.

관련 문제