正确认识request.getSession(false)

通常jsp编程中都是使用

HttpServletRequest.getSession()


但却忽略了一个问题,如果此用户session不存在,则会创建一个新的session。
可以看到官方解释:

/**
 *Returns the current HttpSession associated with this request or, if if there
 *is no current session and create is true, returns a new session.
 *If create is false and the request has no valid HttpSession, this method
 *returns null.
 *To make sure the session is properly maintained, you must call this method
 *before the response is committed. If the container is using cookies to maintain 
 *session integrity and is asked to create a new session when the response is 
 *committed, an IllegalStateException is thrown.
 *Parameters: true - to create a new session for this request if necessary; false
 *to return null if there's no current session
 *Returns: the HttpSession associated with this request or null if create is
 *false and the request has no valid session
 */
public HttpSession getSession(boolean create)
 



HttpServletRequest.getSession() == HttpServletRequest.getSession(ture)

 

HttpServletRequest.getSession(false) == 如果不存在则返回null



正确处理方式应该是:
使用HttpServletRequest.getSession(false)处理session。

HttpSession _session = HttpServletRequest.getSession(false);
if (_session != null) {
    _session.getAttribute("xxx");
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值