如何獲得 request, "request.getSession(true).setAttribute("a",a);"與“request.setAttribute("a",a);”區別


protected ServletContext getServletContext() { return ServletActionContext.getServletContext();
}

protected HttpSession getSession(boolean paramBoolean) { return ServletActionContext.getRequest().getSession(paramBoolean);
}

protected HttpSession getSession() { return ServletActionContext.getRequest().getSession();
}

protected HttpServletRequest getRequest() { return ServletActionContext.getRequest();
}

protected HttpServletResponse getResponse() { return ServletActionContext.getResponse();
}
HttpServletRequest request = ServletActionContext.getRequest();

 

getSession()是返回當前用戶的會話對象,參數的區別在於     
  參數為true,則如果“當前用戶的會話對象”為空(第一次訪問時)則創建一個新的會話對象返回   
  參數為false,則如果“當前用戶的會話對象”為空,則返回null(即不自動創建會話對象)
注意request.getSession() 等同於 request.getSession(true),除非我們確認session一定存在或者sesson不存在時明確有創建session的需要,否則請盡量使用request.getSession(false)。

request.setAttribute一次傳參數,速度快,缺點是參數只能取一次。
request.getSession().setAttribute保存參數,將參數放入后主要不清,就一直在,隨時可以取來用。缺點是比較占用資源。
setAttribute(string name, string value):增加一個指定名稱和值的新屬性,或者把一個現有的屬性設定為指定的值。

 

1、request.getSession()可以幫你得到HttpSession類型的對象,通常稱之為session對象session對象的作用域為一次會話,通常瀏覽器不關閉,保存的值就不會消失,當然也會出現session超時。服務器里面可以設置session的超時時間,web.xml中有一個session time out的地方,tomcat默認為30分鍾
2、session.setAttribute("key",value);是session設置值的方法,原理同java中的HashMap的鍵值對,意思也就是key現在為“user”;存放的值為userName,userName應該為一個String類型的變量吧?看你自己的定義。
3、可以使用session.getAttribute("key");來取值,以為着你能得到userName的值。
4、注意:getAttribute的返回值類型是Object,需要向下轉型,轉成你的userName類型的,簡單說就是存什么,取出來還是什么。
5、setAttribute和getAttribute就是基於HashMap的put方法和get方法實現的,一般叫鍵值對或者key-value,即通過鍵找到值。例如你的名字和你的人的關系,只要一叫你的名字,你就會喊到,通過你的名字來找你的人,簡單說這就是鍵值對的概念。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM