回答
有一个功能request.getSession(boolean create)
参数:
create
- 真正创造必要时申请一个新的会话;假返回NULL如果没有当前会话
因此,你可以简单地传递false
告诉getSession
如果会话不存在返回null。
HttpSession session = request.getSession(true); 如果(session.isNew()){ ...做一些 }其他{ ...做别的事情 }
的.getSession(true)
本讲述java如果不存在创建一个新的会话。
你可能当然也做:
if(request.getSession(false) != null){
HttpSession session = request.getSession();
}
看看:http://java.sun.com/javaee/6/docs/api/javax/servlet/http/HttpServletRequest.html
欢呼声, 耶尔
如果你要检查这个之前创建,那么这样做:
HttpSession session = request.getSession(false);
if (session == null) {
// Not created yet. Now do so yourself.
session = request.getSession();
} else {
// Already created.
}
如果你不关心这个检查后创建,那么你也可以这样做:
HttpSession session = request.getSession();
if (session.isNew()) {
// Freshly created.
} else {
// Already created.
}
这节省了线路和boolean
。 request.getSession()
与request.getSession(true)
的做法相同。
定义一个类,例如SessionTimeoutIndicator,它实现了接口javax.servlet.http.HttpSessionBindingListener
。接下来创建一个SessionTimeoutIndicator对象并将其添加到用户会话中。当会话被删除时,Servlet引擎将调用SessionTimeoutIndicator.valueUnbound()
方法。然后您可以执行valueUnbound()
来执行所需的操作。
if(null == session.getAttribute("name")){
// User is not logged in.
}else{
// User IS logged in.
}
我想补充一点,如果你为连接到你的网站的每个新用户创建一个新的会话,那么你的表现将会受到严重打击。使用request.getSession(false)来检查用户是否有会话。如果您要根据用户是否经过身份验证来渲染视图,则使用此方法不会创建新会话。
- 1. 如何检查会话是否存在?
- 2. 检查是否存在会话
- 3. 在zend中,如何通过ID检查会话是否存在?
- 4. 如何检查会话是否超时?
- 5. 如何检查全局会话是否存在。使用Codeigniter
- 6. 如何检查会话数组中是否存在特定值
- 7. 如何检查会话ID是否已存在于redis
- 8. 如何检查PHP会话是否存在$ ssid?
- 9. 如何检查每个会话的会话是否有效?
- 10. 检测PHP会话是否存在
- 11. 检查会话存储中是否存在JSON对象javascript
- 12. 检查会话是否超时在jquery
- 13. django会话检查存在
- 14. 最佳位置写会话代码,以检查是否存在会话
- 15. Zend命名空间 - 检查会话是否存在
- 16. 检查数组是否已经存在于会话中
- 17. 检查是否PHP会话存在,或使用AJAX
- 18. 批处理 - 检查是否存在空会话连接
- 19. php - 检查服务器上是否存在会话文件
- 20. 通过Ajax创建Laravel会话并检查它是否存在
- 21. 如何检查Liferay会话是否在Javascript中超时?
- 22. 如何检查会话是否设置在header.php
- 23. 检查是否阻塞写入会话
- 24. 检查快速会话是否过期
- 25. cakephp - 检查会话是否设置
- 26. 检查会话是否超时
- 27. laravel检查是否变量会话
- 28. 检查会话是否为空或不
- 29. 检查是否会话超时
- 30. 要检查会话是否可用
...最好的解释imho ...指的是文档,并保持专注。 – 2010-05-12 12:04:38