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. Filezilla Server 配置大全

    一个开源.免费的FTP服务端程序,Windows 安装程序(0.9.50 beta):右键另存为. 首先说一下FTP的二种模式:主动模式(port mode)与被动模式(passive mode),网 ...

  2. JavaScript 设置、读取Cookie

    1.设置Cookie //设置cookie function setCookie(cookieName, cookieValue, cookieExpires, cookiePath) { cooki ...

  3. svn 批量更新 bat脚本

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

  4. (转)HelloWorld CMake CMake中构建静态库与动态库及其使用

    继续完善Hello World,建立它的共享库, 包括静态库和动态库. 本节的任务: 1,建立一个静态库和动态库,提供HelloFunc函数供其他程序编程使用,HelloFunc 向终端输出Hello ...

  5. JMS的常用方法

    import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Destination; impor ...

  6. SOA_环境安装系列2_Oracle RCU安装和环境搭建(案例)

    2015-01-02 Created By BaoXinjian

  7. Report_矩阵报表的实现(案例)

    2014-05-31 Created By BaoXinjian

  8. BestCoder Round #84 Aaronson

    Aaronson 题意: 给个中文链接:戳戳戳 题解: 这题一看给的公式就是二进制,之后马上就能想到当m大于等于二进制的位数时,输出n的二进制的1的个数就好了.之后就是m小于二进制的位数时,只要加上2 ...

  9. dbs:apple-notes

    ylbtech-dbs:apple-notes -- =============================================-- apple_备忘录-- auhtor:Yuanbo ...

  10. 在VMware虚拟机中配置DOS汇编开发环境!!

    操作系统:win7 32位 DOS环境:DosBox  下载:http://www.dosbox.com/ 选择当前适合自己版本,下载就可以了. 汇编编译器:MASM 5.0 下载:http://do ...