会话技术之Cookie

在无状态的客户端(未登录)下,张三想买手机然后把手机加入购物车,服务器发出添加成功的响应,然后把手机加入ServletContext域里,然后张三想在逛逛别的,

再无状态的客户端(未登录)下,李四想买车。然后把汽车加入购物车,服务器发出添加成功的响应,然后把汽车加入ServletContext域里然后李四想在逛逛

但是这个时候张三想结算,但是结算的时候发现多了辆汽车,这就是ServetContext的问题点 它无法区别客户端,因为它的资源是共享的

我们还学了个域是request域,但是在这个域里除非张三加入购物车后直接结算 不然request会清楚消失 因为requset是在一次请求中的,所以以我们现在所学的无法解决这矛盾点

所以

这种就是无状态(未登录)客户端张三,想买手机和酱油,把手机,酱油加入购物车,然后有两种方法一种是session方法,直接在服务器里开一块属于张三的内存然后把手机和酱油存在服务器里

还有一种方法是cookie方法直接在张三的客户端里开一块内存 把手机和酱油存在客户端里,要结算的时候直接把客户端里的手机和酱油带到服务器端里去结算

会话技术简介

存储客户端的状态

由一个问题引出今天的内容,例如网站的购物系统,用户将购买的商品信息存储到哪 里?因为Http协议是无状态的,也就是说每个客户访问服务器端资源时,服务器并 不知道该客户端是谁,所以需要会话技术识别客户端的状态。会话技术是帮助服务器 记住客户端状态(区分客户端)

会话技术

从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,成为一次会话。会 话技术就是记录这次会话中客户端态的状与数据的。

会话技术分为Cookie和Session:

Cookie:数据存储在客户端本地,减少服务器端的存储的压力,安全性不好,客户端 可以清除cookie

Session:将数据存储到服务器端,安全性相对好,增加服务器的压力

注:在无状态情况下(未登录)一个游览器就是一个客户端,只有关闭了游览器才是会话结束,只关闭网站但不关闭游览器的话是不算会话结束的,

开两个游览器算是两个客户端。

Cookie技术

Cookie技术是将用户的数据存储到客户端的技术,我们分为两方面学习:

第一,服务器端怎样将一个Cookie发送到客户端

第二,服务器端怎样接受客户端携带的Cookie

cookie流程图

张三发出请求,我要买个手机,然后服务器得把你这个数据响应回给客户端,响应回去后 把手机给存在本地客户端上,然后结算的时候再把你这个手机带到

服务器结算上,然后服务器给你结算。

然后我们只需要关心的就是服务器怎么把这个手机数据发送到客户端和怎么把已经存在本地客户端的手机数据带到结算servlet上

然后把服务器里的数据带到本地服务器是响应头的set-cookie头

然后本地客户端把手机带到服务器结算的时候是请求头的cookie

cookie都是都是键值对,而且不能存中文,

服务器端向客户端发送一个Cookie

第一次访问:

是没有cookie头的。

第二次:

第二次才会有cookie头

 在默认情况(不设置持久化时间的情况下)下,存在客户端的信息的生命周期是一次会话(关闭游览器就消失了)中。

设置Cookie在客户端的持久化时间:

设置Cookie的携带路径:

概念:

如果不设置携带路径,那么该cookie信息会在访问产生该cookie的 web资源所在的路径都携带cookie信息

服务器端怎么接受客户端携带的Cookie

在遍历的时候要先访问上面的SendcookieStervlet,然后在访问Getcookie不然会出现空指针错误

原文地址:https://www.cnblogs.com/www1842564021/p/12377304.html

时间: 2024-10-21 23:57:31

会话技术之Cookie的相关文章

会话技术Session&Cookie

一.会话技术简介 1.存储客户端的状态 由一个问题引出今天的内容,例如网站的购物系统,用户将购买的商品信息存储到哪     里?因为Http协议是无状态的,也就是说每个客户访问服务器端资源时,服务器并不知道该客户端是谁,所以需要会话技术识别客户端的状态.会话技术是帮助服务器   记住客户端状态(区分客户端) 举例购物过程: 2.会话技术 从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,成为一次会话.会话技术就是记录这次会话中客户端的状态与数据的. 会话技术分为Cookie和Sessio

JavaWeb学习之转发和重定向、会话技术:cookie、session、验证码实例、URLConnection使用(下载网页)(4)

1.转发和重定向 HttpServletResponse response 转发: RequestDispatcher dispatcher = request.getRequestDispatcher("/secondServlet"); request.setAttribute("pwd","123");//这里设置的值在secondServlet中可以获取到 dispatcher.forward(request, response);//调

JAVAWEB开发之JSP、EL、及会话技术(Cookie和Session)的使用详解

Servlet的缺点 开发人员要十分熟悉JAVA 不利于页面调试和维护(修改,重新编译) 很难利用网页设计工具进行页面设计(HTML内容导入到servlet中,用PrintWriter的对象进行输出) JSP简介 JSP(Java Server Pages) 与Java Servlet一样,是在服务器端执行的,不同的是JSP先由服务器编译部署成Servlet执行. JSP技术的企业最佳实践(生成HTML内容) 新的JSP2.0规范版本包括新的功能(EL表达式,新增的Simple Tag和Tag

会话技术之Cookie 和 Session

为什么要使用会话技术 会话从字面上来说就是,就是两个人说话,也就是两个人交流,那么这里说的是计算机web端的交流,因为互联网是基于HTTP传输信息的,而http传输是无状态协议,缺少状态,意味着如果后续需要前面的内容,必须重传.也就是每一次连接都是独立的请求,这样就会给我们程序带来不便,比如我们要登陆一个网站购买商品时,是不是每次打开一个页面都需要登陆,答案是否定的,我可以给我的网址传一个参数,虽然这样能实现,但是没实质性作用,也不安全,任何人都可以登陆.这时就需要用到下面学到的技术Cookie

会话技术: Cookie Session JSP

##  Cookie A..概念:客户端会话技术,将数据保存到客户端 B.使用步骤: 1.创建Cookie对象,绑定数据 new Cookie(String  name, String value) 2.发送Cookie对象 response.addCookie(Cookie cookie) 获取Cookie,拿到数据 request.Cookie[]getCookies `      C.实现原理 基于相应头set-cookie和请求头cookie实现 D.cookie的细节 1.一次可不可以

Django中的会话技术(Cookie,Session,Token)

一.Cookie 客户端技术,将数据信息存储到浏览器中,存储的结构是字典结构,即key-value. Cookie是服务端创建,但保存于客户端,客户端每次发送请求时都会将Cookie信息发送到服务器(因为Cookie是请求头信息的一部分) Cookie不支持中文,不能跨浏览器,不能跨域名 1.设置cookie HttpResponse.set_cookie() response.set_signed_cookie("Cookie名称","Cookie值",salt=

【会话技术】Cookie技术 案例:访问时间

创建时间:6.30 代码: 1 package cookie; 2 3 import java.io.IOException; 4 import java.text.SimpleDateFormat; 5 import java.util.Date; 6 7 import javax.servlet.ServletException; 8 import javax.servlet.http.Cookie; 9 import javax.servlet.http.HttpServlet; 10 i

JavaWeb学习笔记五 会话技术Cookie&Session

什么是会话技术? 例如网站的购物系统,用户将购买的商品信息存储到哪里?因为Http协议是无状态的,也就是说每个客户访问服务器端资源时,服务器并不知道该客户端是谁,所以需要会话技术识别客户端的状态.会话技术是帮助服务器记住客户端状态(区分客户端). 从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,成为一次会话.会话技术就是记录这次会话中客户端的状态与数据的.会话技术分为Cookie和Session: Cookie:数据存储在客户端本地,减少服务器端的存储的压力,安全性不好,客户端可以清除

Cookie&&Session会话技术之再体验

1.转发与重定向[****]    * 重定向:重新确定请求方向        * 发送者:服务器 --> 响应(response)浏览器        * 执行者:浏览器 --> 重新请求        * 跳转        * response.sendRedirect("/day04/1.html");        * //完全等价,隐藏了HTTP协议的具体要求        * response.setStatus(302);        * response