亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

jsp 對request.getSession(false)的理解(附程序員常疏忽的一個漏洞)

2024-09-05 00:21:13
字體:
來源:轉載
供稿:網友
在網上經常看到有人對request.getSession(false)提出疑問,我第一次也很迷惑,看了一下J2EE1.3 API,看一下官網是怎么解釋的。

【前面的話】
在網上經??吹接腥藢equest.getSession(false)提出疑問,我第一次也很迷惑,看了一下J2EE1.3 API,看一下官網是怎么解釋的。
【官方解釋】
getSession
public HttpSession getSession(boolean create)
Returns the current HttpSession associated with this request or, if if there is no current session and create is true, returns a new session.
If create is false and the request has no valid HttpSession, this method returns null.
To make sure the session is properly maintained, you must call this method before the response is committed. If the container is using cookies to maintain session integrity and is asked to create a new session when the response is committed, an IllegalStateException is thrown.
Parameters: true - to create a new session for this request if necessary; false to return null if there's no current session
Returns: the HttpSession associated with this request or null if create is false and the request has no valid session
譯:
getSession(boolean create)意思是返回當前reqeust中的HttpSession ,如果當前reqeust中的HttpSession 為null,當create為true,就創建一個新的Session,否則返回null;
簡而言之:
HttpServletRequest.getSession(ture) 等同于 HttpServletRequest.getSession()
HttpServletRequest.getSession(false) 等同于 如果當前Session沒有就為null;
【問題和bug】:
我周圍很多同事是這樣寫的;

復制代碼 代碼如下:


HttpSession session = request.getSession(); // a new session created if no session exists, 哈哈!完蛋啦!如果session不存在的話你又創建了一個!
String user_name = session.getAttribute("user_name");


需要注意的地方是request.getSession() 等同于 request.getSession(true),除非我們確認session一定存在或者sesson不存在時明確有創建session的需要,否則盡量使用request.getSession(false)。在使用request.getSession()函數,通常在action中檢查是否有某個變量/標記存放在session中。這個場景中可能出現沒有session存在的情況,正常的判斷應該是這樣:

復制代碼 代碼如下:


HttpSession session = request.getSession(false);
if (session != null) {
String user_name = session.getAttribute("user_name");
}


【投機取巧】:

如果項目中用到了Spring(其實只要是Java的稍大的項目,Spring是一個很好的選擇),對session的操作就方便多了。如果需要在Session中取值,可以用WebUtils工具(org.springframework.web.util.WebUtils)的getSessionAttribute(HttpServletRequest request, String name)方法,看看高手寫的源碼吧:哈哈。。

復制代碼 代碼如下:


/**
* Check the given request for a session attribute of the given name.
* Returns null if there is no session or if the session has no such attribute.
* Does not create a new session if none has existed before!
* @param request current HTTP request
* @param name the name of the session attribute
* @return the value of the session attribute, or <code>null</code> if not found
*/
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工具包中的一個工具,用來判斷一些驗證操作,本例中用來判斷reqeust是否為空,若為空就拋異常。
上面的代碼又可以簡潔一下啦,看吧:

復制代碼 代碼如下:


HttpSession session = request.getSession(false);
String user_name = WebUtils.getSessionAttribute(reqeust, "user_name");


來源:
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧洲中文字幕国产精品| 国内精品久久影院| 亚洲欧美日韩中文在线| 国产97色在线| 中文字幕欧美精品在线| 日本成人免费在线| 日韩视频精品在线| 国产中文字幕日韩| 欧美野外wwwxxx| 亚洲人成网7777777国产| 中文字幕欧美视频在线| 欧美一区三区三区高中清蜜桃| 亚洲a在线观看| 亚洲精品一区在线观看香蕉| 日本精品久久久久影院| 国产精品视频一区二区高潮| 日韩综合中文字幕| 国产一区二区三区在线观看视频| 欧美一级淫片videoshd| 亚洲欧美日韩在线一区| 久久国产精品影片| 中文字幕成人精品久久不卡| 亚洲欧美日韩一区在线| 国产精品免费看久久久香蕉| 日韩av免费在线看| 亚洲欧美日韩直播| www.xxxx欧美| 国产中文字幕日韩| 日韩精品中文在线观看| 国产精品国产三级国产aⅴ9色| 日韩精品免费在线视频| 欧美激情一区二区久久久| 欧美性生交大片免费| 国产亚洲欧美aaaa| 亚洲国产毛片完整版| 国产精品自产拍在线观看| 欧美性黄网官网| 国产精品久久久久aaaa九色| 欧美高清电影在线看| 欧美极品美女电影一区| 国产精品久久久久77777| 欧美国产日韩xxxxx| 欧美成人久久久| 国a精品视频大全| 姬川优奈aav一区二区| 亚洲电影免费观看高清完整版在线| 日韩欧美中文字幕在线观看| 欧美日韩国产一区中文午夜| 国产69精品久久久| 亚洲成人精品久久| 精品国产老师黑色丝袜高跟鞋| 欧洲亚洲女同hd| 色琪琪综合男人的天堂aⅴ视频| 亚洲视频一区二区三区| 亚洲qvod图片区电影| 久久久久久久网站| 久久久久久久久爱| 国产精品久久久久久搜索| 国产成人综合av| 久久伊人精品一区二区三区| 成人免费xxxxx在线观看| 日韩av在线免费| 久久精品视频va| 欧美激情视频网| 欧美整片在线观看| 亚洲大尺度美女在线| 亚洲另类欧美自拍| 欧美福利视频在线观看| 91久久夜色精品国产网站| 日本亚洲精品在线观看| 91精品视频免费观看| 亚洲一区国产精品| 欧美日韩免费在线| 日韩成人在线播放| 日本一区二区在线免费播放| 亚洲女人初尝黑人巨大| 亚洲色图综合网| 一本久久综合亚洲鲁鲁| 成人亲热视频网站| 伊人一区二区三区久久精品| 亚洲欧洲黄色网| 日韩亚洲第一页| 欧美性少妇18aaaa视频| 欧美激情一区二区三区高清视频| 亚洲精品国产综合久久| 久久影院模特热| 亚洲成色999久久网站| 中国日韩欧美久久久久久久久| 97成人精品视频在线观看| 欧美性生交大片免费| 在线亚洲午夜片av大片| 91精品国产乱码久久久久久久久| 久久视频在线播放| 亚洲第一二三四五区| 中文字幕久精品免费视频| 久久久欧美一区二区| 日本精品视频在线| 国产精品久久av| 69精品小视频| 高清欧美一区二区三区| 亚洲精品在线91| 在线日韩av观看| 欧美制服第一页| 一区二区三区 在线观看视| 精品国产视频在线| 搡老女人一区二区三区视频tv| 亚洲在线免费看| 久久精品国产成人| 成人妇女淫片aaaa视频| 欧美激情一二三| 国产精品第一区| 茄子视频成人在线| 久久深夜福利免费观看| 亚洲国产成人在线播放| 91黑丝高跟在线| 久久国产精品久久久| 日韩在线欧美在线| 亚洲bt天天射| 超碰日本道色综合久久综合| 亚洲乱码一区二区| 九九精品在线视频| 日韩中文字幕免费视频| 91日本视频在线| 俺去亚洲欧洲欧美日韩| 欧美巨乳在线观看| 色99之美女主播在线视频| 亚洲精品电影网站| 98精品国产自产在线观看| 欧美高清视频在线| 高清日韩电视剧大全免费播放在线观看| 国a精品视频大全| 亚洲乱码一区二区| 亚洲精品电影网站| 国产亚洲精品美女久久久久| 精品亚洲夜色av98在线观看| 一区二区在线视频播放| 亚洲已满18点击进入在线看片| 日韩av在线免费看| 日韩电影中文字幕在线| 国产日本欧美一区二区三区| 亚洲欧美色图片| 久久亚洲精品视频| 久久精品久久久久久国产 免费| 亚洲激情小视频| 中文字幕欧美日韩精品| 国产精品吊钟奶在线| 中文字幕欧美日韩精品| 日韩在线免费高清视频| 91免费视频网站| 久久国内精品一国内精品| 97欧美精品一区二区三区| 欧美极度另类性三渗透| 国产精品草莓在线免费观看| 国产伊人精品在线| 热久久免费视频精品| 久久精品亚洲精品| 久久久av电影| 国产精品日韩精品| 欧美性做爰毛片| 欧美福利视频在线观看| 久久夜色精品亚洲噜噜国产mv| 亚洲精品之草原avav久久| 欧美大肥婆大肥bbbbb| 国产日韩精品在线观看|