2、“从HttpRequest 对象中读取 Session ID”--HttpRequest对象是先从客户机上的Cookie中读取Session ID的?
//对,每个用户都有唯一的sessionID

解决方案 »

  1.   

    比如,在一jsp页中有:<jsp:useBean id="cart" scope="session" class="mypack.ShoppingCart"/>
    ,是不是说ShoppingCart这个javabean类的对象就是所说的HttpSession对象了??!
      

  2.   

    是不是就是说不同的session客户登陆,就创建相应不同的ShoppingCart对象保存于Session??
      

  3.   

    1>一般session存在内存中,但服务器有自己的机制来应付各种情况.
    比如:tomcat就有如果你的session过多,可能占据太多的内存,所以它允许你可以选择是否把暂时不用的session保存在硬盘的文件中或数据库中.
    2>客户端保存了session号,如果客户请求就把session号发过去,服务器根据session号来决定调用哪个session.
    3>你可以定义一个购物车对象来保存商品,在把此对象放入session中.
      

  4.   

    session和Cookie是有区别的 session是保存在服务器的内存中的 Cookie是保存在客户端的文本文档
    用户可以手动禁止它  session意思是在这个用户没有离开网站之前一直有效,如果无法判断用户何时离开,一般依据系统设定,tomcat中设定为30分钟
      

  5.   

    Sun的HttpSession实现如下.
    1:以Cookies实现,如你所说:当一个 Session 开始时,Servlet 容器将创建一个 HttpSession 对象,Servlet 容器为 HttpSession 分配一个唯一标识符,称为 Session ID。Servlet 容器将 Session ID 作为 Cookie 保存在客户的浏览器中。每次客户发出 HTTP 请求时,Servlet 容器可以从 HttpRequest 对象中读取 Session ID,然后根据 Session ID 找到相应的 HttpSession 对象,从而获取客户的状态信息。2:在URL加入其它信息实现,如Tomcat中,如果你禁用Cookies,Session通过http://url;jSessionID=ID
    来实现.它会向浏览器发消息,看是否Cookies可能,如果不可用.就要自己加入jSessionID=ID了.既然jSessionID是每一个人的身份证号码,当然,在Session中加入的全是个人的.如果你用如Struts的标签,它的url标签会自己加入jSessionID的.这个服务器上就根据客户的Session ID从硬盘上取出这个客户的HttpSession对象到内存
    基本上放在内存上,当然,关于虚拟内存的调度问题,那是看OS了.