了解一下 cookie

会话技术
  程序中的会话:
      打开浏览器---->访问特定的网站(访问服务器)---->
关闭浏览器

将浏览器和服务器之间的产生数据,会话!
服务器端会话技术:session
浏览器端会话技术:cookie :登录 
特例:京东(不登录/登录)--->不登录--->将会话数据保存在cookie(加入购物车)
                  登录---->服务器(session中)

   
应用场景:
1)	打开浏览器---->访问网站----->填写用户登录数据(会话数据)---
>校验成功------->首页,会显示当前的用户名信息---->关闭浏览器

  直接打开浏览器---->访问同一个网站---->直接显示用户信息

2)	访问商品列表--->点击某一个商品----->浏览器关闭
下一次进来---->商品列表----->记录之前访问过的商品数据(图片等)


Cookie: 浏览器端的存储技术
     小饼干,小甜点
1)	服务器端创建Cookie,将cookie数据并携带给浏览器
public Cookie(String name, String value) (响应头:setCookie:key=value)
2)	通过浏览器端将数据存储在缓存区中,(请求头:cookie :key=value)
  
public void addCookie(Cookie cookie):将cookie写回浏览器,等待下次访问
将指定 cookie 添加到响应。可多次调用此方法设置一个以上的 cookie。

3)public Cookie[] getCookies() :浏览器在再次访问的时候,服务器端就可以获取到cookie数据
返回包含客户端随此请求一起发送的所有 Cookie 对象的数组


--->cookie的基本使用:
1)	创建Cookie
2)	将cookie数据由服务器写回浏览器
3)	再次访问服务器,可以获取cookie数据
 
获取cookie的名称: getName()
获取的cookie的内容:getValue()

  
cookie的细节:(不适合存储私有数据!)
1)	cookie内容只能存储String类型的数据
2)	浏览器端存储cookie的个数有限制:300个,
每一个站点可以存储20多个cookie,每一个cookie大小不超过4kb
3)	有效期的问题: 
public void setMaxAge(int expiry):cookie的有效期:默认浏览器关闭时,cookie会话结束!
设置 cookie 的最大生存时间,以秒为单位。
      参数为正整数:  超过了当前的值,表示cookie过期了 
            0:  (清空浏览器记录):直接将cookie会话结束
public void setPath(String uri):设置当前cookie的有效路径
如果存在项目名称 :   由”/项目名称”  ,到”/rem”,如果设置了有路径,才能使用cookie数据



案例1:
步骤分析:

记录上一次访问的时间
创建一个Serlvet  :RemServlet      url-pattern:/rem
1)	 记录当前cookie的名称:lastTime     new Cookie(“lastTime”,long类型的时间)
2)	public Cookie[] getCookies():通过api获取指定名称的cookie
3)	判断当前获取的指定的cookie是否为空
         如果为空,
                   提示:当前您是第一次访问
         如果不为空: 
                     获取当前的指定名称lastTime的cookie的值--->String
                      String--->long(int)---->pareseLong(value)--->long
                      ----->Date对象---->toLocalString():提示:您上一次访问的时间是:
    4)还有记录当前的系统时间:new Cookie(“lastTiem”,new Date()--->long)
5)  由服务器将cookie携带给浏览器
 
  addCookie(cookie) ;
  
 注意:1)cookie不能存储中文(要存储中文:URLEncoder/URLDencoder分别加密和解密)
2)Cookie不能跨浏览器 


案例2: 记录当前用户浏览过的商品(显示足迹)

简单认识jsp(重点:el表达式)
   Java Server Page:java 服务页面
  Jsp,其实就是一个serlvet程序 (也是反射机制)
1)	tomcat服务器将jsp---->翻译成java文件
2)	Jvm---->将java文本编译class文件
3)	通过反射输出里面的内容

<%jsp脚本代码%>
<%=jsp的输出表达式%>
<%! jsp定义成员变量 %>
<%--jsp的注释:不会被解析--%>


1)	改造页面product_list.htm---->变成jsp文件
2)	点击商品列表中的某个商品,跳转到指定的servlet后台(getProductById)
3)	见图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值