day04_Cookie

Cookie:

饼干,其实是一根小数据,是服务器给客户端,并且存储在客户端上的一份小数据
应用数据
自动登陆,浏览记录。

为什么要有Cookie

http 的请求是无状态的,也就是说,客户端和服务器端的相应和请求是无状态的协议,第二次就不认识了, 服务器根本不知道这个客户端之前有没有来放过,从用户角度来说是为了跟好的用户体验,更好的交互,从公司层面来说是为了收集用户习惯

cookie 的使用
简单使用:响应头里面
1.添加cookie 给客户端:

	Cookie cookie = new Cookie("aa", "bb");
		response.addCookie(cookie);
1 在相应的时候添加cookie 
2 客户端收到的信息里面,响应头中出现了一个字段Set-cookie 

2 获取客户端带过来的cookie

cookies = request.getCookies();
		if (cookies != null) {
			for (Cookie c : cookies) {
				String cookiename = c.getName();
				String cookievalue = c.getValue();
				System.out.println(cookiename + "-----" + cookievalue);
			}
		}

在这里插入图片描述
//2 这个cookie 的有效期,默认情况下,关闭浏览器后,cookie 就没有了,当然这种情况针对设置cookie 额有效期
//expiry 有效的意思,返回以秒为单位的指定的cookie的最大生存时间。
//正值表示在这个数字过后cookie 将会失效,也就是删除
//负值 :关闭浏览器,cookie 就是小,默认值是-1

	cookie.setMaxAge(60*60*24*7);
	// 赋值新的值
	//cookie.setValue(newValue);
	//用于指定只有请求了指定的域名,才会带上该cookie
	//cookie.setDomain();
	//只有访问该域名下的cookieDemo这个路径地址才会带cookie
	//cookie.setPath("/CookieDemo");

例子:回显最近访问的时间是什么时候

1 判断账号是否正确
2 正确就获取cookie,得到的cookie 是一个数组,我要要从数组里面找到我们想要的对象
3 如果找到的对象为空,表明是第一次登陆,则添加cookie
4 如果找到的对象不为空,表明不是第一次登陆

例子商品浏览记录

准备工作

1拷贝基础课第一天的html原型到webcontent 里面
2 新建一个jsp文件,叫product_list.jps,然后拷贝原来prouct_list.html ;里面的内容到jsp 里面
拷贝html标签的所有内容,替换所有内容
3 修改product_info.html 里面的手机数码超链接的地址

  • 手机数码(current)

  • 4修改首页顶部手机数码跳转的位置是
  • 手机数码(current)

  • 在这里插入图片描述
    jsp里面使用java代码

    定义全局变量
    <%! int a = 99; %>
    定义局部变量
    <% int b=999; %>
    在jsp页面上可以显示a 和b 的值
    	<%=a %><br>
        <%=b %><br>
    
    
    				<!-- 只能在jap 里面写java 代码了    -->
    				<%
    					Cookie[] cookies = request.getCookies();
    					Cookie cookie = cookieutil.findCookie(cookies, "history");
    					//如果cookie是空,表明没有浏览任何的商品
    					if (cookie == null) {
    				%>
    				<h2>您还没有浏览任何商品!</h2>
    				<%
    					} else {
    						//不是空,表明有浏览记录
    						String[] ids = cookie.getValue().split("#");
    						for (String id : ids) {
    				%>
    				<li
    					style="width: 150px; height: 216; float: left; margin: 0 8px 0 0; padding: 0 18px 15px; text-align: center;"><img
    					src="products/1/cs1000<%=id %>.jpg" width="130px" height="130px" />
    				</li>
    				<%
    					}
    					} 
    				%>
    
    			</ul>
    

    清除浏览记录 就是请吃cookie

    删除cookie 是没有delete 方法的,设置maxAge 为0 就可以清除

    // 演练清除cookie
    		Cookie cookie = new Cookie("history","");
    		cookie.setMaxAge(0);
    		cookie.setPath("/Cookie02");
    		response.addCookie(cookie);
    		response.sendRedirect("product_list.jsp");
    

    cookie 总结

    1 服务器给客户端发送过来一小份数据,放在客户端上
    2 获取cookie,并添加这个cookie
    request.getcookie()
    response.addcookie
    3 cookie 分类
    会话cookie默认情况下,关闭了浏览器,cookie就会消失
    持久cookie
    在一定的时间内都有效,并且会保存在客户端上
    cookie.setMaxAge(0)//设置立即删除
    cookie.setMaxAge(100) //100秒
    4 cookie 的安全问题

    由于cookie 会保存在客户端上,所以有安全隐患问题。Cookie 的大小与个数是有限制的浏览器支持每个web 有20哥cookie,总共有300 哥cookie ,每个cookie的大小是4kb,所以为了解决这个问题,----》 引出了session

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值