`
zgxzowen
  • 浏览: 40232 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

正确认识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");
}

 

 

分享到:
评论

相关推荐

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

    本文将深入探讨`request.getSession(true)`、`request.getSession(false)`以及`request.getSession(null)`的区别,并提供最佳实践建议。 首先,让我们了解`getSession()`方法的基本行为。根据Servlet官方文档,`...

    request.getSession().doc

    Request.getSession() 方法详解 Request.getSession() 方法是 HttpServletRequest 对象中的一个方法,用于获取当前 HTTP 请求关联的 HttpSession 对象。如果当前会话不存在,可以通过 create 参数控制是否创建一个...

    jsp 对request.getSession(false)的理解(附程序员常疏忽的一个漏洞)

    `request.getSession()`和`request.getSession(false)`是其中两个重要的方法,它们与会话管理密切相关,也是程序员容易忽视的问题所在。 `request.getSession()`方法默认会创建一个新的会话,如果当前请求中还没有...

    request.setAttribute 语句前总显示红色感叹号解决办法 HTTP Status 500 -

    在Java Web开发中,我们经常遇到各种运行时错误或编译错误,其中一种较为常见的问题是`request.setAttribute`方法调用时出现红色感叹号提示,并且伴随着HTTP 500错误。这种问题通常是由类型不匹配导致的,比如尝试将...

    基于servlet的购物车

    Map, Book> books = (Map, Book>)request.getSession().getServletContext().getAttribute("books"); Book book = books.get(bookid); System.out.println(book); //得到数量 int bookNum = Integer....

    request.getParameter()取值为null的解决方法

    然而,在实际应用中,开发者有时会遇到`request.getParameter()`取值返回null的情况,这往往导致了数据无法正确接收,进而影响程序的执行。根据上述文件信息,造成`request.getParameter()`取值为null的原因是页面...

    数据库测试test.sql

    HttpSession session = request.getSession(); // session.setAttribute("username",username); session.setAttribute("user",user); //response.sendRedirect("/myservlet2/admin/success.jsp"); //response....

    getServletContext()空指针异常的原因

    getServletContext()空指针异常的原因getServletContext()空指针异常的原因getServletContext()空指针异常的原因getServletContext()空指针异常的原因getServletContext()空指针异常的原因

    javaweb 做图片水印,水印图片到目录图片上去

    String planeImage = request.getSession().getServletContext().getRealPath("/image").replace("\\", "/")+"/"+"symark.png"; //获取目标图片的路径String targetPic = request.getSession().getServletContext()....

    于笑扬java综合知识点总结-必背(吐血推荐).doc

    request.getSession()方法用于获取当前会话,request.getSession(false)和request.getSession(true)是它的变体: * request.getSession():获取当前会话,如果不存在则创建一个新的会话 * request.getSession(false...

    java中相对路径,绝对路径问题总结.doc

    - 文件的绝对路径:`request.getSession().getServletContext().getRealPath(request.getRequestURI())` - Web应用的绝对路径:`servletConfig.getServletContext().getRealPath("/")` 总的来说,正确理解和使用...

    jsp获取action传来的session和session清空以及判断.docx

    使用request.getSession()方法可以获取当前请求的session对象,然后可以通过getAttribute()方法获取session中的值,例如:<%=request.getSession().getAttribute("sessionid"); %>。这种方法也可以获取session的值,...

    sevlet生命周期,request web.xml 及ServletContext总结

    使用`request.getSession()`创建或获取HttpSession对象,以进行会话管理。 - **HTTP方法**: `request.getMethod()`返回请求的HTTP方法(GET、POST等)。 - **其他请求信息**: 包括但不限于:`request....

    session的使用

    HttpSession session = request.getSession(false); String username = (String) session.getAttribute("username"); if (username != null) { // 用户已登录 } ``` 通过上述步骤,可以有效地利用 ...

    通用分页js

    String totalCount = (String) request.getSession().getAttribute("totalCount") == null ? "0" : (String) request.getSession().getAttribute("totalCount"); String pageNum = (String) request.getSession()....

    用户管理系统(ums)

    HttpSession session= request.getSession(); // 设置session的值 session.setAttribute("userList", list); //跳转到显示的页面,格式(得到当前页面的+要跳转的页面) response.sendRedirect(request....

    weChatpay完整版java

    UserAccessToken token = (UserAccessToken) request.getSession().getAttribute("UserAccessToken"); if(null==token){ token = util.getAccessToken3(Constants.APPID, Constants.SECRET,code); ...

    图片上传并回显插件11111

    .getSession().getServletContext()); MultipartHttpServletRequest multipartRequest = resolver .resolveMultipart(request); MultipartFile file = multipartRequest.getFile("fileList"); 这个file就能...

    前台页面敏感数据传输到后台钱的加密处理(md5加密)

    js:(jsp页面引入md5.js文件) var mobile=$("input[name='mobile']").val(); var hash1=hex_md5(mobile); $("input[name='hidmobile']").val... request.getSession().setAttribute("actList", actList); } }

Global site tag (gtag.js) - Google Analytics