是否有必要在电子商务中创建会话

时间:2014-06-29 15:48:20

标签: jsp session servlets

我正在JSP中开发一个电子商务网络应用程序,它不包含任何类型的登录或注册,现在我想在购物车中添加内容..

我真的需要创建一个会话来在购物车中添加数据吗?

1 个答案:

答案 0 :(得分:0)

会话是要走的路。它是最简单的机制,比手动实现类似效果要容易得多。

正如您所提到的,会话只是跟踪用户的一种方式。当您在十台不同的机器上有十个客户访问您的页面并将内容添加到他们的购物车时,您需要一种机制来跟踪哪个是购物车。

这就是会议的工作方式:

  1. 用户首次打开您的网站
  2. 服务器检查JSESSIONID cookie值
  3. 的请求
  4. JSESSIONID不存在,因此服务器生成随机数 并在第一次在响应中设置JSESIONID cookie。
  5. 服务器记下此随机数,创建时间和最后一个 请求此用户的时间
  6. 浏览器获取页面结果,但也获取JSESSIONID cookie 以及页面回复
  7. 浏览器知道"继续随后发送此cookie 请求"
  8. 因此,对于每个后续用户请求,浏览器本身都会发送此请求 cookie,您不需要付出任何努力。这是制作的部分 会议很简单。
  9. 首先尝试这个简单的实验:

    <%
    Integer thisUserReqCount = (Integer) session.getAttribute("reqCount");
    if(thisUserReqCount==null) thisUserReqCount  = 1;
    else thisUserReqCount++;
    session.setAttribute("reqCount", thisUserReqCount);
    %>
    
    Request No: <%= thisUserReqCount %>
    

    这是一个简单的购物车示例:

    <%
    Map<String, Object> thisUsersCart = (Map<String, Object>) session.getAttribute("userCart");
    if(thisUsersCart ==null){
       thisUsersCart = new HashMap<String, Object>();
       session.setAttribute("userCart", thisUsersCart);
    }
    //Now you have the cart thisUsersCart. You can do some thing with this to get data or put data in the cart.
    %>