Cookie和Session的使用及其案例分析

Cookie和Session的使用及其案例分析

会话
会话技术可以理解为:用户开启一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭会话浏览器,整个过程称为会话。
注意点:每个用户和服务器进行交流的时候各自有一些数据,程序员要想办法保存每个用户的数据

Cookie技术
Cookie是客户端技术,程序把每个用户的数据以Cookie的形式写给各自的服务器,当用户使用这些浏览器去访问服务器端的web资源的时候,就是带着各自的数据去的,这样,web资源处理的数据就是各自的数据了
在这里插入图片描述
举例:
判断用户是不是第一次访问
如果是第一次访问,需要输出欢迎,并且记录当前的时间,保存到cookie中,再写入到浏览器端
如果不是第一次访问,获取cookie中的时间,输出时间,并且记录当前的时间,保持在cookie中,再回写到浏览器端

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		/**
		 * 1.获取所有的cookie,判断是不是第一次访问
		 * 2.如果是第一次访问,输出欢迎,记录当前的时间,回写到浏览器端
		 * 3.如果不是第一次访问,获取时间,输出到浏览器上,记录当前的时间,回写到浏览器上
		 */
		//设置中文乱码问题的处理
		response.setContentType("text/html;charset=utf-8");
		
		//获取所有的cookie
		Cookie[] cookies = request.getCookies();
		//通过指定的cookie名称来查找cookie
		Cookie cookie = MyCookieUtil.getCookieByName(cookies,"last");
		
		//如果cookie==null,说明第一次访问
		if (cookie == null) {
			//输出欢迎,记录当前的时间,回写到浏览器上
			response.getWriter().write("<h1>亲,欢迎下次光临哟</h>");
		} else {
			//获取cookie的值,输出浏览器,记录当前的时间,回写到浏览器
			String value = cookie.getValue();
			response.getWriter().write("<h1>亲,您又来了,您上次访问的时间是"+value+"</h1>");
		}
		//记录当前的时间,回写到浏览器
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String sDate = sdf.format(date);
        //回写到浏览器
        //回写cookie
        Cookie c = new Cookie("last",sDate);
        //设置有效时间,即可以设置访问的时间,可以在下次访问的时候保存其账号和密码信息
        c.setMaxAge(60 * 60);
        //设置有效路径  默认的路径就是和servlet的路径相同的.但是你可以通过对数据的改变来完成目的
        c.setPath("/day_11");
        //回写
        response.addCookie(c);	
	}

实现结果为
在这里插入图片描述
cookie细节
1.一个cookie只能标识一种信息,它至少含有一个标识该信息的名称和设置值
2.一个web站点可以给多个web浏览器发送多个Cookie,一个浏览器也可以存储多个web站点提供的Cookie
3.如果创建了一个cookie,并将他发送到浏览器上,默认她是一个会话级别的cookie(存储在浏览器的内存中),用户推出浏览器即被删除

Cookie的使用
编写商品信息列表,给每一个商品起唯一的id值,通过id传值
判断是不是第一次访问
如果不是第一次访问,获取cookie中的商品信息,但是需要判断cookie是否可以包含该商品,如果包含就不用处理,如果不包含,就取出来做累加操作
重定向到商品页面,把商品循环到列表页面
业务流程图如下所示:
在这里插入图片描述
代码体现

public class ProductServlet extends H
  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值