欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
DAO層和Service層中訪(fǎng)問(wèn)Session

    很多情況下,我們需要在DAO或者Service層拿到Session中的值,比如下面這個(gè)應用,session中存放了當前用戶(hù)的賬號,在DAO層中需要insert一條record,這條record需要記錄當前用戶(hù)(該記錄是由誰(shuí)創(chuàng )建的),對于這樣的應用,我們一般可以在A(yíng)ction層中通過(guò)request拿到session里的用戶(hù)賬號,然后傳入service,再傳入DAO層,就可以解決了。

    今天,我在這里記錄一種方式,利用ThreadLocal來(lái)存入sesion,然后可以在任何業(yè)務(wù)層,DAO層獲取Session的方式,首先建立一個(gè)CSession來(lái)存放session的值,只放了2個(gè)屬性,用戶(hù)的賬號和姓名

 

Java代碼  
  1. public class CSession {  
  2.     private String username;  
  3.     private String userId;  
  4.           
  5.     public String getUsername() {  
  6.         return username;  
  7.     }  
  8.     public void setUsername(String username) {  
  9.         this.username = username;  
  10.     }  
  11.       
  12.     public String getUserId() {  
  13.         return userId;  
  14.     }  
  15.     public void setUserId(String userId) {  
  16.         this.userId = userId;  
  17.     }  
  18. }  
 

建立SessionUser類(lèi),用來(lái)存放在整個(gè)運行期CSession的存在

 

Java代碼  
  1. public class SessionUser {  
  2.   
  3.   
  4.     @SuppressWarnings("unchecked")  
  5.     static ThreadLocal sessionUser = new ThreadLocal();  
  6.       
  7.     @SuppressWarnings("unchecked")  
  8.     public static void setSessionUser(CSession cSession) {  
  9.         sessionUser.set(cSession);  
  10.     }  
  11.       
  12.     public static CSession getSessionUser(){  
  13.         return (CSession )sessionUser.get();  
  14.     }  
  15.       
  16.     public static String getSessionUserId(){  
  17.         return getSessionUser().getUserId();  
  18.     }  
  19.       
  20.     public static String getSessionUserName(){  
  21.         return getSessionUser().getUsername();  
  22.     }  
  23. }  

 

在登錄的Action里,登錄成功后,加Session里的用戶(hù)信息,放入CSession中,

 

Java代碼  
  1. HttpSession session = request.getSession(true);  
  2. CSession cs = new CSession();  
  3. cs.setUserId(userId);  
  4. cs.setUsername(userName);  
  5. session.setAttribute("C_SESSION",cs);  

 

最后,在session check的Filter中,把CSession注入到SessionUser中,

 

Java代碼  
  1. public void doFilter(ServletRequest request, ServletResponse response,  
  2.             FilterChain chain) throws IOException, ServletException {  
  3.           
  4.         HttpServletRequest hrequest = (HttpServletRequest) request;  
  5.         HttpServletResponse hresponse = (HttpServletResponse) response;  
  6.           
  7.                .......  
  8.           
  9.         CSession cs = (CSession) hrequest.getSession(true).getAttribute("C_SESSION");  
  10.           
  11.         SessionUser.setSessionUser(cs);  
  12.                           
  13.                 .......  
  14.     }  

 

下面我們就可以再DAO層中直接從SessionUser中獲取 userid 和 username,

 

Java代碼  
  1. xxxTO.setUserId(SessionUser.getSessionUserId());  
  2. xxxTO.setUserName(SessionUser.getSessionUserName());  
 

頁(yè)面上,

 

Java代碼  
  1. <bean:write name="C_SESSION" property="username"/>  
  2. <bean:write name="C_SESSION" property="userId"/>  
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
用一天的時(shí)間學(xué)習Java EE中的SSH框架
mybatis能否返回一個(gè)map?
DAO設計模式
simple-spring-memcached簡(jiǎn)介
Mybatis第二天
整合之道
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久