SessionAware
インターフェイスを実装してインターセプター内からセッション オブジェクトにアクセスしようとしています (setSession
メソッドを実装しました) が、この方法でセッション オブジェクトを取得できません。
それから試しActionContext.getContext().getSession()
てみたところ、セッションを取得できましたが、わかりませんが、すべてのユーザーのすべてのブラウザーで初めて空になり、別のアクションが呼び出されるといっぱいになります。
セッションで何か問題が発生していると思います。初めて空のセッションが表示されるのはなぜですか? 初めて空のセッションを与えた後にのみ何かを設定しますか?
この場合、全員が最初のリクエストでゲストとして表示され、2 回目のリクエストでユーザー名が表示され、それ以降は表示されます。
または、間違った方法でセッションを取得していますか?
インターセプターでセッションを取得するコードを見ましたが、定数が見つからないため、これは機能しませんHTTP_REQUEST
。
final ActionContext context = invocation.getInvocationContext();
HttpServletRequest request = (HttpServletRequest) context.get(HTTP_REQUEST);
HttpSession session = request.getSession(true);
Object user = session.getAttribute(Constants.USER_HANDLE);
問題を解決するための提案はありますか?
言い忘れたこと - 私のウェブサイトは安全なサイト (https) であるため、ユーザーがログインしていない場合、ユーザーはウェブサイトにアクセスできません。ログインしている場合、少なくともユーザー名がセッションに存在する必要があります。 . そうではないでしょうか?