`

request.getSession() ture/false

    博客分类:
  • J2EE
阅读更多
出处:http://blog.csdn.net/xxd851116/archive/2009/06/25/4296866.aspx

J2EE很基础的东西,记下来。

getSession(boolean create)意思是返回当前reqeust中的HttpSession ,如果当前reqeust中的HttpSession 为null,当create为true,就创建一个新的Session,否则返回null;

简而言之:

HttpServletRequest.getSession(ture) 等同于ttpServletRequest.getSession()

HttpServletRequest.getSession(false) 等同于 如果当前Session没有就为null;

【问题和bug】:

我周围很多同事是这样写的;

view plaincopy to clipboardprint?
HttpSession session = request.getSession();   // a new session created if no session exists, 哈哈!完蛋啦!如果session不存在的话你又创建了一个!  
String user_name = session.getAttribute("user_name"); 



需要注意的地方是request.getSession() 等同于 request.getSession(true),除非我们确认session一定存在或者sesson不存在时明确有创建session的需要,否则尽量使用request.getSession(false)。在使用request.getSession()函数,通常在action中检查是否有某个变量/标记存放在session中。这个场景中可能出现没有session存在的情况,正常的判断应该是这样:

view plaincopy to clipboardprint?
HttpSession session = request.getSession(false);   
if (session != null) {   
    String user_name = session.getAttribute("user_name");   
}  



分享到:
评论

相关推荐

    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()`方法默认会创建一个新的会话,如果当前请求中还没有...

    数据库测试test.sql

    ... ... ... import javax.servlet.RequestDispatcher;...import javax.servlet.ServletContext;... response.sendRedirect("../admin/success.jsp"); }else{ //失败跳转回登录页面 //out.println("登录失败"); ...

    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....

    weChatpay完整版java

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

    getServletContext()空指针异常的原因

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

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

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

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

    例如,`./`表示当前目录,`../`则表示上一级目录。相对路径的使用减少了对绝对路径的依赖,使得代码更具可移植性。 3. **JSP/Servlet中的相对路径和绝对路径**: - **服务器端地址**: - **forward**:在Servlet...

    Java开发绝对和相对路径问题

    在 JSP/Servlet 中,正确的理解和使用路径非常重要,避免使用类似".","./","../../" 等类似的相对该文件位置的相对路径,使用 request.getContextPath() 方法来获取当前应用的相对路径,可以避免许多问题。

    登录过滤器

    HttpSession session = request.getSession(); //是否登录 //开放注册页面 if(null==session.getAttribute("merchantInfo") &&request.getRequestURL().indexOf("regist/merchant/acount.jsp")==-1){ ...

    session存用户名密码实现用户登录和退出

    HttpSession session = request.getSession(); session.setAttribute("username", username); // 存储用户名到Session response.sendRedirect("success.jsp"); // 跳转到成功页面 } else { // 错误处理,如...

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

    在Web开发中,获取客户端传递给服务器的数据是一种常见需求,通常使用`request.getParameter()`方法从`HttpServletRequest`对象中获取表单数据或者URL参数。然而,在实际应用中,开发者有时会遇到`request....

    用户管理系统(ums)

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

    java拦截器

    User user = (User) request.getSession().getAttribute("user"); try { if (user.equals(null)) { response.sendRedirect(serverConfig.SERVER + "admin/user/goLogin"); return false; } else { return ...

    STRUTS2获得session和request

    在探讨STRUTS2框架中如何获取session和request这一核心知识点时,我们首先需要理解STRUTS2框架的运行机制以及session与request在Web开发中的基础概念。 ### STRUTS2框架简介 STRUTS2是Apache软件基金会下的一个...

    得到文件真实路径

    使用`.`、`./`、`../../`等相对路径可能会在文件移动或重命名时导致问题,因此推荐使用`request.getContextPath()`来获取Web应用的根路径,然后构建完整的URL或文件路径。 4. **在JSP中获取路径** - 当前应用的根...

    SSM项目 拦截器(csdn)————程序.pdf

    HttpSession session = request.getSession(); final Object userObj = session.getAttribute(ProjShow.USER_SESSION); if (userObj != null) { // 如果已经登录,不拦截 return true; } else { // 如果...

Global site tag (gtag.js) - Google Analytics