15

フィルタを介してセッション変数にアクセスする必要があります。それが可能かどうかさえわかりません。実際には、問題は、実装doFilterからのメソッドタイプがであるのに対し、HttpServletはクラスを継承しているのに対し、doPostメソッドパラメータはHttpServletRequestであるということです。javax.Servlet.FilterServletRequestrequest

  1. フィルタのServletRequestのセッションにアクセスできますか?
  2. 私はそれをすべきですか?
  3. 何をすすめますか?

ありがとう!

4

2 に答える 2

29

ServletRequest得られたものをにキャストするだけHttpServletRequestです。

@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
    HttpServletRequest request = (HttpServletRequest) req;
    HttpSession session = request.getSession(false);
    // ...
}

参照:

于 2013-02-21T18:42:55.253 に答える
0

できますよ。ServletRequest属性を含むセッションにアクセスできます。フィルタ、サーブレット、jsp、セッションリスナーのいずれかで、いつでも属性を確認、追加、削除、および変更できます。この手法は非常に便利であり、同じセッション内の異なるコンポーネント間の通信に特に役立ちます。

于 2013-02-21T18:41:42.383 に答える