gpt4 book ai didi

java - HttpServletRequest.getSession(false) 和 HttpSession 的区别

转载 作者:行者123 更新时间:2023-11-29 03:16:16 28 4
gpt4 key购买 nike

我在一个 Spring MVC 项目中工作,从我们使用的 session 中获取值..

session = request.getSession(false);
Object obj = (Object) session.getAttribute("sessionVeriable");

request 是从 Controller 传递过来的 HttpServletRequest 类对象。

我的观点是为什么 HttpServletRequest 对象被传递,为什么不直接传递 HttpSession。从 HttpServletRequest 获取 session 对象和直接从 HttpSession 获取 session 对象有什么不同吗?

最佳答案

session = request.getSession(false); 仅当存在与请求关联的 session 时才返回一个 session 。例如。一个 RESTful 应用程序肯定可以在没有 session 的情况下工作。这反过来意味着您提供的代码理论上可以抛出 NullPointerException

HttpSession 实例传递给方法意味着如果没有 session 与请求关联,则将创建一个 session 。如果 request 参数未用于其他用途,则它是您的更好选择。

为了完整起见:session = request.getSession(); 实际上与具有 HttpSession 参数相同。

关于java - HttpServletRequest.getSession(false) 和 HttpSession 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26399500/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com