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-的主要内容,如果未能解决你的问题,请参考以下文章

Servle之Cookie

Servle--转发实例学习笔记

Cookie中图片的浏览记录与cookie读取servle时路径的设置(文字描述)

转载 Servlet3.0中使用注解配置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