0

Dao パターンを使用して Web セッションへのアクセスを制御したいと考えています。

私の考えは、1 つの DAO を使用してセッションにあるすべての要素を制御することです。たとえば、誰かがそのようなものを書かなければならない電子メールを取得したい場合:

    sessionDAO.getEmail();

また

    UserData userData = sessionDAO.getUserData();
    userData.getEmail();

メールを Sesion に入れるには、次のことを行います。

    public void setEmail(String email){
           ServletRequestAttributes requestAttributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
           HttpSession session = requestAttributes.getRequest().getSession();
           session.setAttribute(SessionDAO.EMAIL,email);
    }

このようにして、セッションにある値をいつでも確認できます。私は誰もがこれを行うことを望んでいません:

   request.setAttribute("email", "example@gmail.com");

たとえば、私のコードの他の部分では、電子メールが既にセッションにあることを知らないため、誰かがコードを繰り返すことができます。

ここでDAOパターンはよく使われていますか?

4

1 に答える 1

1

contextこのアプローチをDAO(実行コンテキストランタイム コンテキストHTTP コンテキストなど)と呼びたいと思います。

JNDI は、同様のアプローチを使用して実装されます。春はApplicationContext. このような例はおそらく他にもたくさんあるでしょう。

DAO は、POJO を取得から分離することに専念しており、将来コードを読む人 (あなた自身を含む) を混乱させる可能性があります。

しかし、とにかく一般的なアイデアは悪くありません。私はそれをかなり頻繁に使用しています。

于 2012-07-23T20:52:56.277 に答える