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. Haroopad 写 markdown文本

    很好用,推荐大家都来用. http://www.csdn.net/article/2014-05-05/2819623

  2. 黄聪:Mysql数据库还原备份提示MySQL server has gone away 的解决方法(备份文件数据过大)

    使用mysql做数据库还原的时候,由于有些数据很大,会出现这样的错误:The MySQL Server returned this Error:MySQL Error Nr. MySQL server ...

  3. svn 批量更新 bat脚本

    由于有多个程序放在svn上管理,每天都要进入相应的目录进行svn 更新操作,现在写了一个简单的脚本进行批量自动更新. Code@echo off @echo ********************* ...

  4. capture同focus

    SetCapture函数功能:该函数在属于当前线程的指定窗口里设置鼠标捕获.一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内.同一时刻只能有一个窗口捕获鼠标.如果鼠标光标在另一 ...

  5. Ubuntu 16.04 LTS (Xenial Xerus)

    Canonical刚刚正式发布了Ubuntu 16.04 LTS (Xenial Xerus),这是一个长期支持版本,官方会提供长达5年的技术支持(包括常规更新/Bug修复/安全升级),一直到2021 ...

  6. [JS]鼠标事件穿透的问题

    今天制作登陆窗口的效果时碰到的一个问题,如下: 标签结构如下: <div id="loginFrame"> <form class="loginFram ...

  7. DBA_Oracle Database 11g 面向 DBA 和开发人员的重要特性

     2015-01-23 Created By BaoXinjian

  8. R-S触发器

    下面是触发器的电路,这个电路上下对称,分别都是一个或门连着一个非门,特别之处在于,它们各自的输出又分别是对方的输入. 合上R,上面的或门输入时1.0,经过上面的非门,Q=0,Q不发光.Q的结果会被反馈 ...

  9. Spring MVC 中文乱码的解决

    对于POST方法提交的中文乱码 , 可在web.xml中添加如下代码 : <filter> <filter-name>encodingFilter</filter-nam ...

  10. GDI+ 中发生一般性错误。

    GDI+ 中发生一般性错误. “/wechat”应用程序中的服务器错误. GDI+ 中发生一般性错误. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及 ...