1

JSFアプリのログインフィルターを実装する方法を理解しようとしているときに、私はあまり理解していないこれらの2行のコードを見ました:

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {  

HttpServletRequest req = (HttpServletRequest) request;
LoginBean login = (LoginBean) req.getSession().getAttribute("login");

}

LoginBeanクラスが「login」という名前のセッションスコープのBeanであるとすると、Beanがリクエストの属性であることに気付いたので、それらの間の関係は何ですか?すべてのセッションスコープのBeanは、リクエストセッションで「属性」として保存されますか?

4

1 に答える 1

1

すべてのセッションスコープのBeanは、リクエストセッションで「属性」として保存されますか?

そのとおりです。JSFは、ベアサーブレットAPI上に構築された単なるMVCフレームワークであり、サーブレットAPIなしで実行できる完全にスタンドアロンのフレームワークではありません。さらに、JSFコアコントローラーFacesServletは十分な価値Servletがあるため、実行するにはサーブレットコンテナが必要です。「セッション」の概念は、によって提供されるサーブレットAPIに含まれHttpSessionているため、JSFセッションスコープのBeanを再発明するのではなく、そこに格納することは完全に理にかなっています。

JSFリクエストスコープのBeanはHttpServletRequest属性として保存され、JSFアプリケーションスコープのBeanは属性として保存されることに注意してくださいServletContext

参照:

于 2012-07-26T15:57:53.683 に答える