這篇文章將為大家詳細(xì)講解有關(guān)java 中的true、false、null有何不同,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
10余年專(zhuān)注成都網(wǎng)站制作,成都企業(yè)網(wǎng)站定制,個(gè)人網(wǎng)站制作服務(wù),為大家分享網(wǎng)站制作知識(shí)、方案,網(wǎng)站設(shè)計(jì)流程、步驟,成功服務(wù)上千家企業(yè)。為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),專(zhuān)注于成都企業(yè)網(wǎng)站定制,高端網(wǎng)頁(yè)制作,對(duì)廣告制作等多個(gè)行業(yè),擁有多年的營(yíng)銷(xiāo)推廣經(jīng)驗(yàn)。
java 中 request.getSession(true/false/null)的區(qū)別
一、需求原因
現(xiàn)實(shí)中我們經(jīng)常會(huì)遇到以下3中用法:
HttpSession session = request.getSession();
HttpSession session = request.getSession(true);
HttpSession session = request.getSession(false);
二、區(qū)別
1. Servlet官方文檔說(shuō):
public HttpSessiongetSession(boolean create)
Returns the currentHttpSession associated with this request or, if if there is no current sessionand create is true, returns a new session.
If create is falseand the request has no valid HttpSession, this method returns null.
To make sure thesession is properly maintained, you must call this method before the responseis committed. If the Container is using cookies to maintain session integrityand is asked to create a new session when the response is committed, anIllegalStateException is thrown.
Parameters: true -to create a new session for this request if necessary; false to return null ifthere's no current session
Returns: theHttpSession associated with this request or null if create is false and therequest has no valid session
2. 翻譯過(guò)來(lái)的意思是:
getSession(boolean create)意思是返回當(dāng)前reqeust中的HttpSession ,如果當(dāng)前reqeust中的HttpSession 為null,當(dāng)create為true,就創(chuàng)建一個(gè)新的Session,否則返回null;
簡(jiǎn)而言之:
HttpServletRequest.getSession(ture)等同于 HttpServletRequest.getSession() HttpServletRequest.getSession(false)等同于 如果當(dāng)前Session沒(méi)有就為null;
3. 使用
當(dāng)向Session中存取登錄信息時(shí),一般建議:HttpSession session =request.getSession();
當(dāng)從Session中獲取登錄信息時(shí),一般建議:HttpSession session =request.getSession(false);
4. 更簡(jiǎn)潔的方式
如果你的項(xiàng)目中使用到了Spring,對(duì)session的操作就方便多了。如果需要在Session中取值,可以用WebUtils工具(org.springframework.web.util.WebUtils)的WebUtils.getSessionAttribute(HttpServletRequestrequest, String name);方法,看看源碼:
public static Object getSessionAttribute(HttpServletRequest request, String name){ Assert.notNull(request, "Request must not be null"); HttpSession session = request.getSession(false); return (session != null ? session.getAttribute(name) : null); }
注:Assert是Spring工具包中的一個(gè)工具,用來(lái)判斷一些驗(yàn)證操作,本例中用來(lái)判斷reqeust是否為空,若為空就拋異常
你使用時(shí):
WebUtils.setSessionAttribute(request, "user", User); User user = (User)WebUtils.getSessionAttribute(request, "user");
關(guān)于java 中的true、false、null有何不同就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。