java 中 request.getSession(true/false/null)的区别

一、需求原因
现实中我们经常会遇到以下3中用法:
HttpSession session = request.getSession();
HttpSession session = request.getSession(true);
HttpSession session = request.getSession(false);
二、区别
1. Servlet官方文档说:
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. 翻译过来的意思是:
getSession(boolean create)意思是返回当前reqeust中的HttpSession ,如果当前reqeust中的HttpSession 为null,当create为true,就创建一个新的Session,否则返回null;
简而言之:
HttpServletRequest.getSession(ture)等同于 HttpServletRequest.getSession() HttpServletRequest.getSession(false)等同于 如果当前Session没有就为null;
3. 使用
当向Session中存取登录信息时,一般建议:HttpSession session =request.getSession();
当从Session中获取登录信息时,一般建议:HttpSession session =request.getSession(false);
4. 更简洁的方式
如果你的项目中使用到了Spring,对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工具包中的一个工具,用来判断一些验证操作,本例中用来判断reqeust是否为空,若为空就抛异常
你使用时:
WebUtils.setSessionAttribute(request, "user", User); User user = (User)WebUtils.getSessionAttribute(request, "user");
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# java
# 中
# request.getSession(true/false/null)的区别
# request.getSession
# request.getSession(true、false、null)对比
# 浅谈为什么Java中1000==1000为false而100==100为true
# 解释为什么Java中“1000==1000”为false而”100==100“为true
# 可以用
# 希望能
# 谢谢大家
# 经常会
# 创建一个
# 就为
# 为空
# 中取
# 包中
# 本例
# 若为
# 文档
# 现实中
# strong
# sessionand
# falseand
# returns
# current
# br
# create
相关文章:
,网站推广常用方法?
如何在景安云服务器上绑定域名并配置虚拟主机?
网站制作公司广州有几家,广州尚艺美发学校网站是多少?
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
建站主机如何选?高性价比方案全解析
建站主机服务器选购指南:轻量应用与VPS配置解析
营销式网站制作方案,销售哪个网站招聘效果最好?
网站设计制作公司地址,网站建设比较好的公司都有哪些?
专业公司网站制作公司,用什么语言做企业网站比较好?
建站之星Pro快速搭建教程:模板选择与功能配置指南
,如何利用word制作宣传手册?
如何在宝塔面板中创建新站点?
家庭服务器如何搭建个人网站?
天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
深圳网站制作案例,网页的相关名词有哪些?
高端网站建设与定制开发一站式解决方案 中企动力
电商平台网站制作流程,电商网站如何制作?
建站之星×万网:智能建站系统+自助建站平台一键生成
视频网站app制作软件,有什么好的视频聊天网站或者软件?
制作网页的网站有哪些,电脑上怎么做网页?
如何快速使用云服务器搭建个人网站?
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
焦点电影公司作品,电影焦点结局是什么?
微信h5制作网站有哪些,免费微信H5页面制作工具?
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?
建站之星免费模板:自助建站系统与智能响应式一键生成
如何零基础在云服务器搭建WordPress站点?
如何配置支付宝与微信支付功能?
如何快速生成凡客建站的专业级图册?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
Android自定义控件实现温度旋转按钮效果
建站之星代理商如何保障技术支持与售后服务?
在线制作视频的网站有哪些,电脑如何制作视频短片?
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
宝塔建站教程:一键部署配置流程与SEO优化实战指南
,sp开头的版面叫什么?
建站之星安装模板失败:服务器环境不兼容?
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
网站制作公司排行榜,四大门户网站排名?
网页设计网站制作软件,microsoft office哪个可以创建网页?
内部网站制作流程,如何建立公司内部网站?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
如何通过PHP快速构建高效问答网站功能?
如何通过虚拟主机快速搭建个人网站?
沈阳制作网站公司排名,沈阳装饰协会官方网站?
简单实现Android验证码
测试制作网站有哪些,测试性取向的权威测试或者网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。