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,即通過鍵找到值。例如你的名字和你的人的關系,只要一叫你的名字,你就會喊到,通過你的名字來找你的人,簡單說這就是鍵值對的概念。