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

发布时间 - 2026-01-10 23:07:52    点击率:

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 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 高端智能建站公司优选:品牌定制与SEO优化一站式服务  零服务器AI建站解决方案:快速部署与云端平台低成本实践  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  ,南京靠谱的征婚网站?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  Laravel怎么实现模型属性的自动加密  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  如何为不同团队 ID 动态生成多个“认领值班”按钮  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)  php 三元运算符实例详细介绍  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  免费网站制作appp,免费制作app哪个平台好?  HTML 中动态设置元素 name 属性的正确语法详解  如何撰写建站申请书?关键要点有哪些?  新三国志曹操传主线渭水交兵攻略  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  图册素材网站设计制作软件,图册的导出方式有几种?  phpredis提高消息队列的实时性方法(推荐)  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  在线制作视频的网站有哪些,电脑如何制作视频短片?  香港服务器网站推广:SEO优化与外贸独立站搭建策略  PythonWeb开发入门教程_Flask快速构建Web应用  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  UC浏览器如何设置启动页 UC浏览器启动页设置方法  如何在建站宝盒中设置产品搜索功能?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  网站制作软件免费下载安装,有哪些免费下载的软件网站?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  Python并发异常传播_错误处理解析【教程】  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  微信小程序 wx.uploadFile无法上传解决办法  Laravel如何使用Passport实现OAuth2?(完整配置步骤)  如何快速重置建站主机并恢复默认配置?  如何在阿里云ECS服务器部署织梦CMS网站?  Python高阶函数应用_函数作为参数说明【指导】  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives