JAVA web - Cookie和Session详解、JSP概述

1.背景

使用Cookie和Session的背景

显示用户的上次访问时间
登录系统以后显示商品浏览记录
购买商品将商品添加到购物车
系统登录的验证码的校验

2记录用户的上一次访问时间

用户登录完成后,显示您是第X位访问的用户,您的上次访问时间是YYYY-MM-DD
*如果是第一次登录的话,只显示第X位登录。
*如果不是第一次登录的话,显示第X位登录,上次访问时间为:yyyy-mm-dd

2.1会话技术

用户打开一个浏览器访问页面,访问网站的很多页面,访问完成后将浏览器关闭的过程成为一次会话。
常见的会话技术:
*Cookie:将数据保存到客户端的浏览器。,
*Session:将数据保存到服务器。

为什么使用会话技术?
私有的数据,购物信息数据保存在会话技术中。

会话技术的使用
*向浏览器保存数据:HttpServletResponse有一个方法: void addCookie(Cookie cookie)
*获得浏览器带过来的数据:HttpServletRequest:— Cookie[] getCookie()

创建一个Cookie对象
Cookie(String Name,String value)

3.JSP的简单的概述

Java Server Pages(Java服务器端界面) = Java代码+HTML的元素+JSP内置的东西
JSP执行的过程:JSP会被翻译成Servlet,编译成Class进行执行。

3.1JSP的脚本元素

<%! %> :翻译成类中的成员部分,定义变量,定义方法,定义类,Servlet是线程不安全,尽量少在类中定义成员属性。
<% %>: 翻译成类的Service方法内部的内容;定义变量,定义类,直接写一些代码块。
<%= %>:翻译成Service方法内部的out.print().

3.2代码实现记录上次访问的时间
        /*
         * 获得浏览器中带过来的所有的Cookie信息,从数组中查找有没有制定名称的cookie。
         * 判断用户是不是第一次访问
         * 如果是第一次:显示欢迎,记录当前爱访问的时间存入到Cookie中
         * 如果不是第一次:显示上一次访问的时间,同时记录当前的时间并存入到Cookie中。
         * */

//      获得浏览器带过来的所有的cookie信息
        Cookie[] cookies = request.getCookies();
//      从数组中查找制定名称的Cookies
        Cookie cookie = CookiesUtils.findCookie(cookies, "lastVisit");
//      判断是否是第一次
        if (cookie == null) {
//          第一次访问
            response.getWriter().println("你是第"+count+"位访客");

        }else{
//          不是第一次登录
            Long long1 = Long.parseLong(cookie.getValue());
            Date date = new Date(long1);
            response.getWriter().println("你是第"+count+"位访客"+date.toLocaleString());
        }
//      创建一个Cookie对象:
        Cookie cookie2 = new Cookie("lastVisit",""+System.currentTimeMillis());
//      保存到浏览器
        response.addCookie(cookie2);
3.3Cookie常用的API

getName()
getValue()
setDomain(String domain) — 设置cookie的有效域名
setPath(String path) — 设置Cookie的有效路径
setMaxAge(int maxAge) — 设置cookie的有效时间

3.4Cookie的分类

会话级别的Cookie:默认的Cookie,关闭浏览器,Cookie就会销毁
持久级别的Cookie:可以设置Cookie的有效时间,Name关闭浏览器Cookie还会存在。手动销毁持久的Cookie—-setMaxAge(0)—前提是有效的路径必须一致。

4.Cookie记录用户的商品浏览记录

在登录完成后,显示商品列表页面。
为商品列表页面做一些准备工作
点击某个商品,将商品ID传递给一个Servlet
在Servlet中判断是否是第一次浏览商品
如果是第一次,将商品的ID存到Cookie中
如果不是第一次,判断商品是否已经浏览了
如果浏览过,删除之前的元素,将该元素添加到最前面
如果没有浏览过该产品,判断最大长度,没有超过显示,直接加到最前面,如果超过最大长度,删除最后一个,将其插入到最前面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值