フィルタを介してセッション変数にアクセスする必要があります。それが可能かどうかさえわかりません。実際には、問題はdoFilter
メソッドタイプがjavax.Servlet.Filter
実装はServletRequest
ですが、HttpServletはクラスを継承しますが、doPostメソッドパラメーターrequest
はHttpServletRequestです。
ありがとう!
得られた ServletRequest
を HttpServletRequest
にキャストするだけです。
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpSession session = request.getSession(false);
// ...
}
できますよ。 ServletRequest
を使用すると、属性を含むセッションにアクセスできます。フィルタ、サーブレット、jsp、セッションリスナーのいずれかで、いつでも属性を確認、追加、削除、および変更できます。この手法は非常に便利であり、特に同じセッション内の異なるコンポーネント間の通信に使用されます。