2012-07-23 40 views
0

我想使用Dao pattern來控制對Web會話的訪問。使用DAO模式訪問網絡會話

我的想法是控制所有的元素,有使用一個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", "[email protected]"); 

因爲在我的代碼有人可以repit代碼的其他部分exmple,因爲他不知道的是,電子郵件已經在會話。

在這裏很好地使用了DAO模式?

回答

1

我寧願把這種方式稱之爲一個的context代替DAO執行上下文運行時上下文HTTP上下文 - 你的名字)。

JNDI使用類似的方法實現。春天有ApplicationContext。可能有更多像這樣的例子。

DAO致力於將POJO與他們的檢索分離,並且可能會混淆未來讀取您的代碼的人,包括您自己。

但無論如何總的想法並不壞,我用它很沉重。