`
micheal19840929
  • 浏览: 163148 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

request.getSession(false)和request.getSession(true)区别

    博客分类:
  • J2EE
阅读更多
request.getSession(false)和request.getSession(true)区别   
  
以下代码解释一下request.getSession(false)和request.getSession(true)区别的思路,并不是j2ee源代码   
  
个人觉得服务器中保存session是用map来保存的:   
例如定义一个保存所有session的map   
  
public GlobalClass   
{   
    public static final Map map=new HashMap();   
       
}   
  
  
在HttpServletRequest实现类(其中包括getSession()和getSession(boolean flag)方法)中获得map对象   
Map map=GlobalClass.map;//获得map对象   
  
public HttpSession getSession(boolean flag)   
{   
    //在request.getSession(true)情况下;   
    //如果map中不存在requestedSessionId(注:requestedSessionId是HttpServletRequest实现类中的一个属性,保存的是从客户端获取的session Id号)键的话,   
    //则创建一个HttpSession对象,并保存在map中   
    if(flag==true)   
    {   
         //不存在,创建   
         if(map.get(requestedSessionId)==null)   
         {   
             HttpSession session=new HttpSession的实现类();     
             //map中的键是session.getSessionId()值   
             map.put(String.valueOf(session.getSessionId()),session);   
             return session;   
         }   
  
         //存在   
         else  
         {   
             //requestedSessionId是HttpServletRequest实现类中的一个属性   
             HttpSession tempSession=(HttpSession)map.get(requestedSessionId);   
             //获得map中的session,这个时候要判断session有没有过期;   
             if(过期)   
             {   
                //将session中的attribute属性的值设为空   
                tempSession.setAttribute(null);   
                return tempSession;   
             }   
             else  
             {   
                return tempSession;    
             }   
         }     
    }   
       
    //在request.getSession(false)情况下;   
    //如果map中不存在requestedSessionId键的话,则返回null,不创建   
    else  
    {   
        //不存在,返回null   
         if(map.get(requestedSessionId)==null)   
         {   
             return null;   
         }   
         //存在   
         else  
         {   
             //requestedSessionId是HttpServletRequest实现类中的一个属性   
             HttpSession tempSession=(HttpSession)map.get(requestedSessionId);   
             //获得map中的session,这个时候要判断session有没有过期;   
             if(过期)   
             {   
                //将session中的attribute属性的值设为空   
                tempSession.setAttribute(null);   
                return tempSession;   
             }   
             else  
             {   
                return tempSession;    
             }   
                
         }   
    }   
        
}   
  
//request.getSession();跟request.getSession(true);是一样的   
public HttpSession getSession()   
{   
    return getSession(true);   
}  

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wzju64676266/archive/2009/12/13/4998968.aspx

分享到:
评论

相关推荐

    request.getSession().doc

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

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

    总之,理解`request.getSession()`和`request.getSession(false)`的区别至关重要,因为它关系到会话的生命周期管理和应用程序的性能。正确使用这些方法,可以避免不必要的资源浪费,并提高程序的健壮性。在编写代码...

    数据库测试test.sql

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

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

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

    于笑扬java综合知识点总结-必背.pdf

    request.getSession() reqeust.getSession(false)和 request.getSession(true) 在 Servlet 中,request.getSession() 方法用于获取当前会话对象。如果没有当前会话对象,request.getSession() 方法将创建一个新的...

    前台页面敏感数据传输到后台钱的加密处理(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); } }

    Java全栈工程师面试宝典.doc

    十、 request.getSession()、reqeust.getSession(false)和 request.getSession(true) request.getSession() 方法用于获取当前请求的 HttpSession 对象: * request.getSession():如果当前请求中没有 HttpSession ...

    jsp源码-网络交易系统

    List<Article> alist1 = (List)request.getSession().getAttribute("alist1"); Iterator<Article> in1 = alist1.iterator(); List<Article> alist2 = (List)request.getSession().getAttribute("alist2"); ...

    JavaWeb使用Session和Cookie实现登录认证

    String str = (String) request.getSession().getAttribute("isLogin"); // 如果登录状态不为空则返回 true,返回 true 则会执行相应 controller 的方法 if (str != null) { return true; } // 如果登录状态为...

    java知识点

    request.getSession(false)不创建新Session,若不存在则返回null;request.getSession(true)无论是否存在都会创建新Session。 十一、Page和PageContext的区别 Page代表当前JSP页面的Java对象,PageContext则提供了...

    jsp中request中的使用获取参数

    另外,`request`对象还有其他重要方法,比如`getLocale()`用于获取用户的首选语言,`getAttribute()`和`setAttribute()`用于在请求作用域内存储和检索对象,以及`getParameterMap()`返回所有请求参数的键值对。...

    解决重复提交、上传组件

    request.getSession().setAttribute(sessionId + "_token", UUID.randomUUID().toString()); return invocation.invoke(); } } ``` 在Action配置中添加这个拦截器: ```xml ...

    Web应用安全:HTTPSession.pptx

    2. 对于 Servlet:若 Servlet 是客户端访问的第一个 WEB 应用的资源,则只有调用了 request.getSession() 或 request.getSession(true) 才会创建 HTTP 会话对象。 六、获取 HTTP 会话对象 在 Servlet 中,可以使用...

    JSPJSP.doc

    - 使用`request.setAttribute("key", value)`和`request.getAttribute("key")`来设置和获取请求范围内的数据,而`request.removeAttribute("key")`用于移除相关数据。 7. **`PrintWriter`的使用** 获取`...

    JaaEE考题复习(详细考点)

    9. **Servlet获取HttpSession对象**:`request.getSession(true)`会在不存在会话时创建新的,`request.getSession(false)`则不会创建,`request.getSession()`如果不存在则创建新的会话,存在则返回当前会话。...

    JavaWeb基础概念.docx

    - `request.getSession(true)`和`request.getSession()`:这两个方法类似,如果会话不存在,它们都会创建一个新的Session并返回。 2. **错误页面配置**: - 在JSP页面中,可以通过`<%@ page errorPage="b.jsp"%>`...

    SimpleCaptcha验证码组件使用

    String sessionCode = (String) request.getSession().getAttribute("captcha"); if (StringUtils.isNotBlank(sessionCode) && sessionCode.equalsIgnoreCase(userInput)) { // 验证通过,清除session中的验证码 ...

    ServletHttpSession DEMO

    - `request.getSession(true)`:与上面相同,但若不存在Session且创建失败(如禁用Cookie),会抛出`IllegalStateException`。 - `request.getSession(false)`:如果存在Session则返回,否则返回`null`。 **4. 获取...

Global site tag (gtag.js) - Google Analytics