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>
<%
}
 
 %>

java中sesion的更多相关文章

  1. java中的锁

    java中有哪些锁 这个问题在我看了一遍<java并发编程>后尽然无法回答,说明自己对于锁的概念了解的不够.于是再次翻看了一下书里的内容,突然有点打开脑门的感觉.看来确实是要学习的最好方式 ...

  2. java中的字符串相关知识整理

    字符串为什么这么重要 写了多年java的开发应该对String不陌生,但是我却越发觉得它陌生.每学一门编程语言就会与字符串这个关键词打不少交道.看来它真的很重要. 字符串就是一系列的字符组合的串,如果 ...

  3. Java中的Socket的用法

                                   Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...

  4. java中Action层、Service层和Dao层的功能区分

    Action/Service/DAO简介: Action是管理业务(Service)调度和管理跳转的. Service是管理具体的功能的. Action只负责管理,而Service负责实施. DAO只 ...

  5. Java中常用集合操作

    一.Map 名值对存储的. 常用派生类HashMap类 添加: put(key,value)往集合里添加数据 删除: clear()删除所有 remove(key)清除单个,根据k来找 获取: siz ...

  6. java中的移位运算符:<<,>>,>>>总结

    java中有三种移位运算符 <<      :     左移运算符,num << 1,相当于num乘以2 >>      :     右移运算符,num >& ...

  7. 关于Java中进程和线程的详解

    一.进程:是程序的一次动态执行,它对应着从代码加载,执行至执行完毕的一个完整的过程,是一个动态的实体,它有自己的生命 周期.它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而 ...

  8. Java中的进程和线程

     Java中的进程与线程 一:进程与线程 概述:几乎任何的操作系统都支持运行多个任务,通常一个任务就是一个程序,而一个程序就是一个进程.当一个进程运行时,内部可能包括多个顺序执行流,每个顺序执行流就是 ...

  9. Java中的进程与线程(总结篇)

    详细文档: Java中的进程与线程.rar 474KB 1/7/2017 6:21:15 PM 概述: 几乎任何的操作系统都支持运行多个任务,通常一个任务就是一个程序,而一个程序就是一个进程.当一个进 ...

随机推荐

  1. [linux basic 基础]----线程的属性

    在信号量和互斥量例子中,我们都是在程序推出之前利用pthread_join对线程进行再次同步:如果想让thread想创建它的线程返回数据我需要这么做:问题:我们有时候既不需要第二个线程向main线程返 ...

  2. PO_PO系列 - 询价报价单管理分析(案例)

    2014-07-01 Created By BaoXinjian

  3. js方法收藏

    1.验证非负数字 //onfocusout="checkQty(this);" function checkQty(obj) { //排除0开头的非法输入 if (obj.valu ...

  4. 转-Activity之间数据传递之Intent数据传递

    Intent意图 可用于Activity之间的数据传递,一般可分为下面两种情况,从当前Activity传递到目标Activity后有无返回值: 1.传递后无返回值的情况: 1 2 3 4 5 6 7 ...

  5. Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义(转载)

    From:http://dadekey.blog.51cto.com/107327/119938 我们先写一个简单的脚本,执行以后再解释各个变量的意义   # touch variable # vi ...

  6. border-radius 样式表CSS3圆角属性

    border-radius 是CSS3圆角属性,用来实现DIV层的4个边框画成圆角. 一.语法: border-radius : none | <length>{1,4} [/ <l ...

  7. expdp impdp终极教学

    源地址:http://blog.csdn.net/giianhui/article/details/7788550

  8. sql server中的锁 事务锁 更新锁 保持锁 共享锁 你知道吗?

    锁定数据库的一个表 SELECT * FROM table WITH (HOLDLOCK) 注意: 锁定数据库的一个表的区别 SELECT * FROM table WITH (HOLDLOCK) 其 ...

  9. APKTool 提取APK文件的资源

    APK文件本身是一个压缩包,直接用解压工具即可打开,但里面的文件都已被编码为二进制文件格式,不能直接看,比如程序描述文件AndroidManifest.xml. 使用apktool工具可以将这些文件解 ...

  10. 手机抓包 http tcp udp?

    1.电脑做wifi热点,手机连上后电脑上使用wireshark抓包 该方法手机无须root,并且适用于各种有wifi功能的手机(IOS.android等).平板等.只要电脑的无线网卡具有无线承载功能, ...