3

フィルター内で、現在の http セッションに 1 つの属性を設定しようとしています。次に、response.sendRedirect() を使用して別のリソースにリダイレクトしています。リソースはリクエストをフィルターに送り返します。2 回目は、セッションがセッション属性を失います。

ポインタを提供してください。

最初のリクエストは次のとおりです。

HttpSession objSession = request.getSession(true);
objSession.setAttribute("wasRequestURL", completeURL);

2 番目の要求は次のとおりです。

if (null != objSession.getAttribute("wasRequestURL") && 
    !"".equals(objSession.getAttribute("wasRequestURL").toString().trim())) {

    requestedURL = objSession.getAttribute("wasRequestURL").toString();

    logger.info("The session value for wasRequestURL is :::"+requestedURL);
}
4

3 に答える 3

0

ほとんどの場合、最初のセッション オブジェクトが途中で失われています。これは、次を使用して確認できます。

HttpSession objSession=request.getSession(false);//don't create session when absent

あなたの2番目のリクエストで。最初のセッションが失われるため、null が返されることはほぼ確実です。その場合は、セッションの周りに作成されたメカニズム/構成を調査してください。

于 2012-11-15T23:02:28.970 に答える
0
  1. セッションの有効期限を確認してください。設定が低すぎる可能性があります。
  2. Web ブラウザなどの Cookie 対応クライアント、または Cookie を保存しない低レベルのクライアントを使用していますか?
  3. 「別のリソースへのリダイレクト」とは、別の Web コンテナー/サーバーを意味しますか? その場合、レプリケーションを有効にしない限り、セッションは 2 番目の要求で利用できません。
于 2012-11-15T23:06:15.373 に答える