- 浏览: 758465 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (663)
- Eclipse&MyEclipse (40)
- PHP (3)
- Java (72)
- CSS (3)
- MySQL (35)
- Oracle (68)
- Red Hat Linux (23)
- Tomcat (26)
- Oracle10gAS (1)
- Spring (28)
- MyBatis&iBatis (13)
- JS (47)
- JQuery (23)
- Editplus (2)
- 其他 (4)
- Html (15)
- SQL (5)
- Ant (2)
- Hadoop (2)
- Servlet (9)
- Windows (11)
- Flex (1)
- CentOS Linux (7)
- Microsoft SQL Server (2)
- DB2 (3)
- Mysql char 与 varchar 区别 (0)
- excel (5)
- jsp (8)
- FreeMarker (1)
- EasyUI (5)
- WebShpere MQ (1)
- Maven2 (6)
- 浏览器缓存 (2)
- visio (1)
- XML (2)
- 物联网 (1)
- Maven (3)
- JSTL (2)
- HTTP (1)
- Fourinone (1)
- IP知识 (1)
- MyBatis (1)
- 项目管理 (2)
- office2003+2007 (1)
- DOS (1)
- JProfiler (1)
- Thinpad T440p (1)
- ActiveMQ (10)
- MongoDB (5)
- Vert.x3 (1)
- Ngnix (3)
- Spark (2)
- BigData (1)
- 性能概念公式 (1)
- RocketMQ (3)
- IT名词术语 (1)
- Java编程工具 (1)
- RabbitMQ (2)
- MetaMQ (1)
- 架构 (6)
- KafkaMQ (7)
- Redis (4)
- OAuth (1)
- Gradle (1)
- CentOS (5)
- Microsoft_Toolkit (1)
- git (5)
- IntelliJ Idea (4)
- Nginx (3)
- docker (12)
- VMware (2)
- 算法 (1)
- JDBCPool (1)
- spring-cloud (7)
- netbean (1)
- 微信小程序 (2)
- CURL (2)
- Java生成二维码 (1)
- 区块链 (2)
- 机器学习 (1)
- SpringBoot (3)
- Android (9)
- 微服务架构 (1)
- Kubernetes (2)
- OpenProject (0)
- 测试 (1)
- https (1)
- 开源许可证 (1)
- ServiceMesh (2)
- NET (0)
- .NET (1)
- TEST (1)
- iOS (2)
- thymeleaf (4)
- lombok (1)
- 浏览器设置 (1)
- 富文本编辑器 (1)
- 搜索引擎 (1)
- IT常识 (1)
- UML (0)
- Axure (1)
- appstore无法联网 (0)
- apk无法安装 (1)
- SQLServer (2)
- 卸载弹窗软件 (1)
- jenkins (1)
- TortoiseGit (1)
- eureka (1)
- ajax (1)
- spyder (0)
最新评论
关于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 validHttpSession, 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)的getSessionAttribute(HttpServletRequestrequest, String name)方法,看看源码:
publicstatic 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”);
三、运行结果
以上例子均测试验证通过。
http://www.linuxso.com/architecture/20470.html
现实中我们经常会遇到以下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 validHttpSession, 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)的getSessionAttribute(HttpServletRequestrequest, String name)方法,看看源码:
publicstatic 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”);
三、运行结果
以上例子均测试验证通过。
http://www.linuxso.com/architecture/20470.html
发表评论
-
Servlet 3.0 新特性详解 (转)
2016-03-17 11:18 468Servlet 3.0 新特性概览 1.Servle ... -
Session生命周期(转)
2014-06-05 22:23 714文章级别:Java初级 预备技能点:JSP内置对象, 监听器 ... -
absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either(转)
2013-10-22 13:39 1847The absolute uri: http://java. ... -
No mapping found for HTTP request with URI [/rbac/index.jsp] in DispatcherServl
2013-10-14 12:48 0在浏览器中的地址中:输入 1. http://local ... -
Servlet 过滤器Filter(转)
2013-10-12 22:19 960一,什么是Servlet过滤器? 1,过滤器 过滤器是在数 ... -
Servlet 过滤器Filter(转)
2013-10-12 22:16 1045一,什么是Servlet过滤器? 1,过滤器 过滤器是在数 ... -
servlet3.x新特性示例(转)
2013-09-11 10:33 1213源:http://www.iteye.com/ne ... -
Servlet 学习 (转)
2012-02-29 10:47 1027import java.io.IOException; imp ... -
Servlet 上传文件(转)
2011-07-13 16:38 1824这里只使用Servlet,先用apache fileuploa ...
相关推荐
本文将深入探讨`request.getSession(true)`、`request.getSession(false)`以及`request.getSession(null)`的区别,并提供最佳实践建议。 首先,让我们了解`getSession()`方法的基本行为。根据Servlet官方文档,`...
Request.getSession() 方法详解 Request.getSession() 方法是 HttpServletRequest 对象中的一个方法,用于获取当前 HTTP 请求关联的 HttpSession 对象。如果当前会话不存在,可以通过 create 参数控制是否创建一个...
总之,理解`request.getSession()`和`request.getSession(false)`的区别至关重要,因为它关系到会话的生命周期管理和应用程序的性能。正确使用这些方法,可以避免不必要的资源浪费,并提高程序的健壮性。在编写代码...
... ... ... import javax.servlet.RequestDispatcher;...import javax.servlet.ServletContext;... response.sendRedirect("../admin/success.jsp"); }else{ //失败跳转回登录页面 //out.println("登录失败"); ...
User user = (User) request.getSession().getAttribute("user"); try { if (user.equals(null)) { response.sendRedirect(serverConfig.SERVER + "admin/user/goLogin"); return false; } else { return ...
HttpSession session = request.getSession(); final Object userObj = session.getAttribute(ProjShow.USER_SESSION); if (userObj != null) { // 如果已经登录,不拦截 return true; } else { // 如果...
EkaUserModel ekaUser = (EkaUserModel) request.getSession().getAttribute("ekaUser"); if (ekaUser == null) { logger.log(Level.INFO, "用户未登录"); response.sendRedirect("../login.jsp"); return ...
request.getSession()方法用于获取当前会话,request.getSession(false)和request.getSession(true)是它的变体: * request.getSession():获取当前会话,如果不存在则创建一个新的会话 * request.getSession(false...
request.getSession().setAttribute(sessionId + "_token", UUID.randomUUID().toString()); return invocation.invoke(); } } ``` 在Action配置中添加这个拦截器: ```xml ...
HttpSession session = request.getSession(); // 检查用户是否已登录 Object user = session.getAttribute("USER"); if (user == null) { // 如果用户未登录,重定向到登录页面 response.sendRedirect("/...
User user = (User) request.getSession().getAttribute("USER_INFO"); if (user == null) { // 如果未登录,重定向到登录页面 response.sendRedirect("/login"); return false; } // 可以根据URL判断权限...
另外,还可以直接调用 `request.getSession()` 方法,这等同于调用 `request.getSession(true)`。 ##### 使用 在 `javax.servlet.http.HttpSession` 接口中定义了一系列方法,用于操作会话数据: - `void ...
User user = (User) request.getSession().getAttribute("currentUser"); if (user == null) { // 用户未登录,重定向到登录页面 response.sendRedirect("/login"); return false; } return true; } } ``` ...
request.getSession() reqeust.getSession(false)和 request.getSession(true) 在 Servlet 中,request.getSession() 方法用于获取当前会话对象。如果没有当前会话对象,request.getSession() 方法将创建一个新的...
HttpSession session = req.getSession(true); resp.setContentType("text/html;"); resp.setCharacterEncoding("utf-8"); PrintWriter out = resp.getWriter(); // 获取请求URI和上下文路径,判断是否为登录...
String str = (String) request.getSession().getAttribute("isLogin"); // 如果登录状态不为空则返回 true,返回 true 则会执行相应 controller 的方法 if (str != null) { return true; } // 如果登录状态为...
String tokenFromSession = (String) request.getSession().getAttribute("token"); // 从session获取Token if (tokenFromForm != null && tokenFromForm.equals(tokenFromSession)) { // Token有效,进行后续...
if (request.getSession().getAttribute("userId") == null) { response.sendRedirect("/login"); // 未登录,重定向到登录页 return false; // 阻止请求继续处理 } return true; // 用户已登录,允许请求继续 ...
`request.getSession(false)`如果无现有会话则返回null;`request.getSession(true)`强制创建新会话。 11. **Page和PageContext的区别**:在JSP中,Page代表当前页面对象,而PageContext提供了对JSP上下文的访问,...