记录用户上次访问时间

案例1-记录用户上次访问时间
需求:
   当用户第一次登录的时候,提示:你是第一次访问,且记录该次访问时间,
   下一次访问的时候,获取上一次访问时间且展示出来
技术分析:
   会话技术
   cookie
   jsp
jsp:
java server pages(java服务器页面)
本质上jsp就是一个servlet,在html代码中嵌套java代码,
运行在服务器端,处理请求,生成动态的内容.
对应的java和class文件在tomcat目录下的work目录
后缀名 .jsp

执行流程:
    1.浏览器发送请求,访问jsp页面
    2.服务器接受请求,jspSerlvet会帮我们查找对应的jsp文件
    3.服务器将jsp页面翻译成java文件.
    4.jvm会将java编译成.class文件
    5.服务器运行class文件,生成动态的内容.
    6.将内容发送给服务器,
    7.服务器组成响应信息,发送给浏览器
    8.浏览器接受数据,解析展示

jsp的脚本: 
    <%...%> java程序片段
        生成成jsp的service方法中
    <%=...%> 输出表达式
        生成成jsp的service方法中,相当于在java中调用out.print(..)
    <%!...%> 声明成员
        成员位置.
会话技术
当用户打开浏览器的时候,访问不同的资源,知道用户将浏览器关闭,可以认为这是一次会话.      
作用:
    因为http协议是一个无状态的协议,它记录不论上次访问的内容.用户在访问过程中难免会产生一些数据,
    通过会话技术就可以将起保存起来.
例如:
    用户登录
    验证码
    购物车
    访问记录
    .....
分类:
     cookie:浏览器端会话技术
     session:服务器端会话技术
cookie:
小饼干 小甜点
cookie是由服务器生成,通过response将cookie写回浏览器(set-cookie),保留在浏览器上,
下一次访问,浏览器根据一定的规则携带不同的cookie(通过request的头 cookie),我们服务器就可以接受cookie
cookie的api:
    new Cookie(String key,String value)
写回浏览器:
    response.addCookie(Cookie c)
获取cookie:
    Cookie[] request.getCookies()
cookie的常用方法:
    getName():获取cookie的key(名称)
    getValue:获取指定cookie的值
cookie:
cookie是由服务器生成,通过response将cookie写会浏览器,
保留在浏览器上下一次访问,浏览器根据 一定的规则携带不同的cookie(通过request的头 cookie),我们服务器就可以接受cookie。
cookie的api:
    new Cookie(String key,String value)
写回浏览器:
    response.addCookie(Cookie c)
获取cookie:
    Cookie[] request.getCookies()
cookie的常用方法:
    getName():获取cookie的key(名称)
    getValue:获取指定cookie的值
案例1-步骤分析:
1.创建一个serlvet RemServlet 路径:/rem
2.在servlet中:
    获取指定cookie 例如:名称为 lastTime
        request.getCookies()
    判断cookie是否为空
        若为空:提示信息 第一次访问
        若不为空:
            获取此cookie的value
            展示信息:你上次访问时间是....
    
    将这次访问时间记录,写会浏览器
案例2:记录用户浏览历史
需求:
当用户访问一个商品的时候,需要将该商品保留在浏览记录中
技术分析:
cookie
步骤分析:
1.先将product_list.htm转成jsp
2.点击一个商品,展示该商品的信息,将该商品id记录到cookie  (GetProductById)
    获取之前的浏览记录 例如名称:ids
    判断cookie是否为空
        若为空 将当前商品的id起个名称 ids 放入cookie中  ids=1
        若不为空,获取值 例如:ids=2-1  当前访问的id=1  使用"-"分割商品id
            判断之前记录中有无该商品
                若有:
                    将当前的id放入前面  结果 ids=1-2
                若没有:
                    继续判断长度是否>=3
                        若>=3,移除最后一个,将当前的id放入最前面
                        若<3,直接将当前的id放入最前面.
        
        若 ids=3-2-1 现在访问1 结果 ids=1-3-2
        若 ids=4-3-2 现在访问1 结果 ids=1-4-3

3.再次回到product_list.jsp页面,需要将之前访问商品展示在浏览记录中
    获取ids  例如:ids=2-3-1
    切割
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容