Bigdata Development Web_Study_04(Session和Cookie)



    <table border="1">
        <tr>
            <th>名称</th>
            <th>操作</th>
        </tr>

        <tr>
            <td>iPhone7</td>
            <td><a href="add?name=iPhone7">添加</a></td>
        </tr>

        <tr>
            <td>小米</td>
            <td><a href="add?name=小米">添加</a></td>
        </tr>

        <tr>
            <td>华为</td>
            <td><a href="add?name=华为">添加</a></td>
        </tr>

        <tr>
            <td>锤子</td>
            <td><a href="add?name=锤子">添加</a></td>
        </tr>

        <tr>
            <td>一加</td>
            <td><a href="add?name=一加">添加</a></td>
        </tr>

        <tr>
            <td>8848</td>
            <td><a href="add?name=8848">添加</a></td>
        </tr>

    </table>


    <h1><a href="list">查看购物车</a></h1>

    <h1><a href="delete">清空购物车</a></h1>

Session

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String name = request.getParameter("name");

    /*
    会话:打开浏览器,访问Web应用程序,关闭浏览器这个过程

    当每个客户端访问服务器的时候,服务器会自动为每一个客户端生成一个唯一标识
    这个唯一表示就是session,服务器中有一个类似HashMap的数据结构保存了所有
    session和客户端的对应关系

    session中也可以存储一些数据,每个客户端只能使用自己的session存取数据

    整个会话过程中,session一般有且只有一个,可以在不同的页面使用同一个session存储数据

    session随着会话的开启服务器自动创建,对着会话的关闭服务器自动销毁
    关闭当前页面不会导致session的销毁


    */
//Java中session对应的类叫做HttpSession
//可以通过request.getSession()获得当前访问服务器的客户端对应的session对象
//有session就直接使用,没有就创建一个,然后使用
//不需要也不能去new创建session,只能使用getSession();
    HttpSession session = request.getSession();

    //设置session的有有效期,超过指定时间就失效,tomcat默认是30分钟
    //session.setMaxInactiveInterval(30);

    //让session立即失效,其中保存的数据也会小时
    //session.invalidate();

    //setAttribute(key,value)向session中存数据
            //如果key存在,后执行的覆盖先执行的
    //getAttribute(key)从session中取数据,也要进行强制转换。
        //如果key不存在,取出的是null

    //
    ArrayList<String> goods =(ArrayList<String>)session.getAtrrbute("goods");

    if(goods == null){

    goods = new ArrayList<String>();

    session.setAttribute("goods",goods);
    }

    goods.add(name);

    response.sendRedirect("index.jsp");
}

Cookie

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
/*
cookie 和session差不多,也是和客户端一一对应,都能存储数据

session存储在服务器上,Cookie存储在客户端上

cookie可以有多个,浏览器在每次请求的时候
会自动把全部的cookie发送给服务器

*/

//通过new Cookie(name,value)存取数据,只能存String
//同名的会覆盖

Cookie cookie = new Cookie("goods".name);

//设施有效期,默认是会话 ,单位是秒
//设置了有效期后浏览器会自动把cookie存在硬盘,失效后浏览器会自动删除cookie
cookie.setMaxAge(60*60);

//通过把有效期设置为0可以删除一个cookie
//cookie.setMaxAge(0);

//负数,有效期就是会话,随之会话的关闭,cookie就会被清理
//cookie.setMaxAge(-1);

//通过response发送浏览器,客户端会自动进行接收和保存
//在后续的所有请求中,也会自动把保存的cookie放在请求头中,发送给服务器

response.addCookie(cookie);

response.sendRedirect("index.jsp");
}


protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

ArrayList<String> goods = new ArrayList<String>();

//只能获取所有的cookie数组
Cookie []cookies = request.getCookies();

//通过遍历获取每一个cookie
for(Cookie cookie: cookies){

//如果想获取特定的一个

//1.cookie.getName();获取cookie的name;
String cookieName = cookie.getName;

//2.和需要寻找的cookie进行名字比较
if("goods".equals(cookieName)){

//cookie 只能保存String
String cookieValue = cookie.getValue();

goods.add(cookieValue);


}
request.setAttribute("list",goods);

request.getRequestDispather("list.jsp").forward(request,response);
}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的影城管理系统,源码+数据库+论文答辩+毕业论文+视频演示 随着现在网络的快速发展,网上管理系统也逐渐快速发展起来,网上管理模式很快融入到了许多生活之中,随之就产生了“小徐影城管理系统”,这样就让小徐影城管理系统更加方便简单。 对于本小徐影城管理系统的设计来说,系统开发主要是采用java语言技术,在整个系统的设计中应用MySQL数据库来完成数据存储,具体根据小徐影城管理系统的现状来进行开发的,具体根据现实的需求来实现小徐影城管理系统网络化的管理,各类信息有序地进行存储,进入小徐影城管理系统页面之后,方可开始操作主控界面,主要功能包括管理员:首页、个人中心、用户管理、电影类型管理、放映厅管理、电影信息管理、购票统计管理、系统管理、订单管理,用户前台;首页、电影信息、电影资讯、个人中心、后台管理、在线客服等功能。 本论文主要讲述了小徐影城管理系统开发背景,该系统它主要是对需求分析和功能需求做了介绍,并且对系统做了详细的测试和总结。具体从业务流程、数据库设计和系统结构等多方面的问题。望能利用先进的计算机技术和网络技术来改变目前的小徐影城管理系统状况,提高管理效率。 关键词:小徐影城管理系统;Spring Boot框架,MySQL数据库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值