cookle-session-
Posted 程序员~小鱼儿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cookle-session-相关的知识,希望对你有一定的参考价值。
会话技术: 需要用到cookis和session,因为http协议是无状态的 ,无法实现会话跟踪
是:让同一个浏览器给同一个网站发送多次请求之间,进行数据共享的技术,
例如:使用同一个浏览器多次访问同一个购物网站时,只需要登录1次就可以一直识别登录者的身份, 就可以用会话技术实现;
Cookie:
是:一个由服务器负责创建,一个由浏览器负责保存的对象,该对象只能存储一个字符串的名字和字符串的 值,且值不能是中文,通常用于存储会话技术中的唯一标识。 相当于生活中的一张会员卡,卡上面存储着一个卡号,其他与该卡号相关的信息需要保存在制作卡的商家哪里
创建cookie对象:直接利用带参数构造方法创建对象即可:Cookie c = new Cookie("名","值");
将cookie发给浏览器 : response.addCookie(c);
服务器获取浏览器带过来的cookie:Cookie[] arr = request.getCookies();然后遍历数组,就可以获取每 一 个cookie对象,再利用getName和getValue获取cookie的名和值;
这一个是再创建一个cookie,浏览器存2个信息,先响应存储,再获取遍历,如果换个新的浏览器没有存储则获取不到报500错误!
浏览器 ×掉,存储的信息就消失,要想长期有 效;可以设置 cookie存活时间:SetMaxAge(int seconds)
注意事项:1.cookie的值不能直接存中文 ,如果存中文需要使用URLEncoder编码 将来获取值的时候再使用 URLDecoder解码即可;
2.cookie默认关闭浏览器的时候失效 ,可以通过setMaxAge 指定cookie的存活时间,单位是秒;
上面这个存中文:编码>解码>设置存活时间
session:
是:服务器负责创建,程序员只能获取的一个容器对象,这个容器是浏览器第一次请求会话的时候,由服务器 创建出来,里面存储的信息可以由程序员自定义 ;
获取session对象:HttpSession session = request.getSession();
给session中添加/修改数据 :session.setAttribute("msg","un");
获取session中的数据:Object msg = session.getAttribute(键);
销毁session:session.invalidate();
这个添加数据获取数据,浏览器不X掉,信息会一直存在,这就是会话技术,是基于cookie的,没有cookie干不成活
这个是获取id
案例效果图:
案例环境搭建 :1.之前做过的登录页面,登录相关的servlet ,service,dao,domain,utils,坐标,mybatis 核心配置文件等都复制过来
2.手动创建出 “main.html”,cart.html,“order.html”静态页面,并存放在webapp的htm文件夹下面;
案例 代码思路 :1.在main.html中的超 连接中 ,完成html页面的跳转 ;
2.在 跳转后的页面中,通过 axios异步请求的技术 ,从 session中获取 用户信息 并显示在 页面相应的位置
3.在登录的servlet中将用户信息添加 到session中;
以上是关于cookle-session-的主要内容,如果未能解决你的问题,请参考以下文章
Cookie中图片的浏览记录与cookie读取servle时路径的设置(文字描述)
报错org.apache.catalina.LifecycleException caused by java.lang.NoSuchMethodError: javax.servlet.Servle
java.lang.ClassCastException: cn.itcase.serviceImpl.servicestudentImpl cannot be cast to javax.servl