• java中sesion


    Session
        *Cookie基于客户端,不安全,并且大小和个数的限制。
        *Session域对象,范围一次会话范围,存个人相关的数据。
        *setAttribute(String name,Object value);
        *Object getAttribute(String name);
        *String getId() 获取session的唯一的ID.
        * void invalidate()   销毁session
     
     
    Session(*****)
        session的追踪 通过jsessionid=''在url中传送到服务器,
        session的创建和销毁
            第一次访问时 request.getSession(),创建session
        销毁:
            1,非正常关闭服务器
            2.sesion的过期,默认30分钟
            <session-config>
                <session-timeout>30</session-timeout>
            <session-config>
            3.通过调用session.invalidate()  手动销毁session
     
     
    Servlet中这样处理页面的加入购物车请求
     
    // 获取请求参数
               String id = request.getParameter( "id");
               String[] names = new String[] { "手电筒", "电话" , "电视" , "冰箱" , "手表" };
                // 把id翻译成名称
                int idx = Integer. parseInt(id);
               String name = names[idx - 1];
                // 从Session中获取购物车,先获取session
               HttpSession session = request.getSession();
                // 获取购物车
               Map<String, Integer> cart = (Map<String, Integer>) session
                         .getAttribute( "cart");
                // 通过cart来判断是否是第一次访问
                if (cart == null) {
                    cart = new HashMap<String, Integer>();
                    cart.put(name, 1);
                    session.setAttribute( "cart", cart);
     
               } else {
                     // 不是第一次访问;判断是否包含该商品
                     if (cart.containsKey(name)) {
     
                          // 取取数量 加一
                         Integer count = cart.get(name);
                         count++;
                         cart.put(name, count);
                          // 再保存到session中;
                         session.setAttribute( "cart", cart);
                    } else {
                          // 不包含
                         cart.put(name, 1);
                         session.setAttribute( "cart", cart);
                    }
               }
                // 继续购物,去结算
               response.setContentType( "text/html;charset=UTF-8");
               response.getWriter()
                         .write( "<h3><a href='/JSP/session/CartList.jsp'>继续购物</a></h3> <h3><a href='/JSP/session/Pay.jsp'>去结算</a></h3>");
     
     
     
     
    结算页面这样写
    <%
    //获取购物车
    Map<String,Integer> cart=(Map<String,Integer>)request.getSession().getAttribute("cart") ;
     
    if(cart!=null ){
    //循环遍历
    Set<String>keys=cart.keySet();
    //循环keys,拿到商品的名称
    for(String key:keys)
    {
    %>
    <h2> 亲,您购买的商品是: <%=key %>,数量为: <%=cart.get(key) %></h2 >
     
    <%
    }
    }
    else{
    %>
     
    <h3> 亲,您还没有购买任何商品,请您去 <a href ='CartList.jsp'>败家</ a></ h3>
    <%
    }
     
     %>
  • 相关阅读:
    android 基础项目及开发出现:error opening trace file: No such file or directory错误解决
    Android开发遇到的问题
    Don‘t talk.Just do it.
    LeetCode——Word Break
    晋IT分享成长沙龙集锦
    logback 简单配置总述
    HDU 2119 Matrix 简单二分匹配
    华为招聘机试整理5:简单四则运算
    JSP简单练习-猜字母游戏
    Codechef July Challenge 2014部分题解
  • 原文地址:https://www.cnblogs.com/haofaner/p/5632109.html
Copyright © 2020-2023  润新知