• javaweb(四)-会话跟踪


     HTTP是一种无连接的协议,如果一个客户端只是单纯地请求一个文件(HTML或GIF),服务器端可以响应给客户端,并不需要知道一连串的请求是否来自于相同的客户端,而且也不需要担心客户端是否处在连接状态。但是这样的通信协议使得服务器端难以判断所连接的客户端是否是同一个人。当进行Web程序开发时,我们必须想办法将相关的请求结合一起,并且努力维持用户的状态在服务器上,这就引出了会话追踪。

    会话跟踪技术

    在一个会话的多个请求中共享数据,这就是会话跟踪技术。例如在一个会话中的请求如下:

    • 请求银行主页;

    • 请求登录(请求参数是用户名和密码);

    • 请求转账(请求参数与转账相关的数据);

    • 请求信誉卡还款(请求参数与还款相关的数据)。

    在这上会话中当前用户信息必须在这个会话中共享的,因为登录的是张三,那么在转账和还款时一定是相对张三的转账和还款!这就说明我们必须在一个会话过程中有共享数据的能力。

    会话路径技术使用Cookie或session完成

    Cookie

    什么叫Cookie

    Cookie翻译成中文是小甜点,小饼干的意思。在HTTP中它表示服务器送给客户端浏览器的小甜点。其实Cookie就是一个键和一个值构成的,随着服务器端的响应发送给客户端浏览器。然后客户端浏览器会把Cookie保存起来,当下一次再访问服务器时把Cookie再发送给服务器。

    注意:Cookie是由服务器创建,然后通过响应发送给客户端的一个键值对。客户端会保存Cookie,并会标注出Cookie的来源(哪个服务器的Cookie)。当客户端向服务器发出请求时会把所有这个服务器Cookie包含在请求中发送给服务器,这样服务器就可以识别客户端了!

    Cookie的生命

     

    所谓生命就是Cookie在客户端的有效时间,可以通过setMaxAge(int)来设置Cookie的有效时间。

    • cookie.setMaxAge(-1):cookie的maxAge属性的默认值就是-1,表示只在浏览器内存中存活。一旦关闭浏览器窗口,那么cookie就会消失。

    • cookie.setMaxAge(60*60):表示cookie对象可存活1小时。当生命大于0时,浏览器会把Cookie保存到硬盘上,就算关闭浏览器,就算重启客户端电脑,cookie也会存活1小时;

    • cookie.setMaxAge(0):cookie生命等于0是一个特殊的值,它表示cookie被作废!也就是说,如果原来浏览器已经保存了这个Cookie,那么可以通过Cookie的setMaxAge(0)来删除这个Cookie。无论是在浏览器内存中,还是在客户端硬盘上都会删除这个Cookie。

    案例:登录记住密码

    login.jsp

    <%@ page contentType&#
  • 相关阅读:
    【JAVA基础】面向对象基础
    基于.NetCore开发博客项目 StarBlog - (20) 图片显示优化
    金九银十进大厂必刷的105道Java面试题(不得不说的秘密)
    编译器是如何将芯片执行的第一个指令放到芯片起始地址的?
    浅谈用Redis实现分布式锁的方案及细节
    格密码入门
    springboot项目创建5种方式
    RBTree模拟实现
    Vue-2.3v-model原理
    RTT外设驱动使用2--ADC串口添加
  • 原文地址:https://blog.csdn.net/weixin_48031392/article/details/127726126