浏览器抓取网页(存储将数据存储到Cookie会话的技术管理技术技术 )

优采云 发布时间: 2022-04-06 15:04

  浏览器抓取网页(存储将数据存储到Cookie会话的技术管理技术技术

)

  一、会话管理1、概述:

  两方之间的通信或交互,同样在计算机中,浏览器与服务器之间的交互称为会话。(版本1)

  一个会话收录多个请求和响应(浏览器第一次向服务器资源发送请求,会话建立,直到一方断开连接。)(版本 2)

  例:张三给李四打电话,李四接听电话,通话建立,双方挂断通话结束。

  2、特点:

  在会话范围内的多个请求之间共享数据

  限制页面访问(不登录无法访问后台页面)

  临时存储数据并在多个请求之间共享数据

  记住密码、自动登录、7天免费登录等。

  3、生命周期

  开始:会话在浏览器访问服务器时开始

  结束:浏览器或服务器端中断时结束

  注意:服务器一般是连续运行的,所以会话结束通常是浏览器关闭造成的。

  4、会话技术:

  最常见的场景:数据库存储

  在 cookie 中存储数据:数据由浏览器保存

  将数据存储到会话:数据由服务器保存

  二、Cookies 1、概述:

  (1)一小段文字用来存放客户端

  (2) 是一种客户端技术,将数据保存到客户端;因为 cookie 存储在客户端浏览器中

  (3) 是维护客户端和服务器之间的状态

  (4)cookie技术,不安全,请勿使用cookie存储敏感信息!如登录状态和登录信息;

  (5)一些敏感数据应该存储在服务器端

  功能:跟踪特定对象、统计页面浏览量、简化登录

  2、常用方法:

  void setMaxAge(int e):设置cookie的有效期,以秒为单位,正数为过了多少秒就会过期;负数表示浏览器关闭时cookie会被删除(有争议);零表示清除 cookie

  int getMaxAge():获取cookie的有效时间,以秒为单位

  void setValue(String value):创建cookie后给cookie赋值

  String getValue():获取cookie的值

  String getName():获取cookie的名称

  Cookie[] getCookies():获取cookie中的所有属性名

  3、使用方法:

  (1)创建Cookie对象并绑定数据(获取服务器上的指定数据并通过cookie保存)

  Cookie cookie = 新 Cookie(key,value);

  (2)写入 Cookie 对象(来自服务器 ---> 客户端)

  response.addCookie(cookie)

  (3)获取cookie,获取数据

  Cookies[] Cookies = request.getCookies()

  4、注意事项:

  编码 URLEncoder.encode("string","utf-8");

  解码 URLDecoder.decode("string","utf-8");

  新闻详情页面

  三、Session内置对象1、概述:session是jsp9内置对象之一(out、request、response、session、applicationconfig、page、pageContext、exception)

  (1)服务器端会话技术,一个会话中多个请求之间共享数据,数据存储在服务器端对象中。jsp:session servlet:HttpSession

  (2)可以通过Session在应用程序的WEB页面之间跳转时保存用户的状态,这样整个用户会话会一直存在,直到浏览器关闭。(即用户浏览网站的时间花费。)

  注意:如果客户端长时间不向服务器发送请求,Session对象会自动消失。这个时间取决于服务器,例如Tomcat服务器默认为30分钟。

  2、常用方法

  (1)public void setAttribute(String name,String value);

  设置具有指定名称的属性的值并将其添加到会话会话范围,或者如果该属性存在于会话范围内,则更改该属性的值。

  (2)public Object getAttribute(String name);

  获取会话范围内具有指定名称的属性的值,返回值类型为object,如果该属性不存在,则返回null。

  (3)public void removeAttribute(String name);

  删除具有指定名称的会话属性。如果该属性不存在,则会发生异常。

  (4)公共无效无效();

  使会话无效。当前会话可以立即失效,并且所有存储在原创会话中的对象都不能再被访问。

  (5)public String getId();

  获取当前会话 ID。每个会话在服务器端都有一个唯一的标识 sessionID,而会话对象发送给浏览器的唯一数据就是 sessionID,一般存储在一个 cookie 中。

  (6)public void setMaxInactiveInterval(int interval);

  设置会话的最大持续时间,以秒为单位,负数表示会话永不过期。

  (7)public int getMaxInActiveInterval();

  获取会话的最大时长,使用时需要进行一些处理

  3、session和window的关系

  (1)每个会话对象都与浏览器一一对应。重新打开浏览器相当于重新创建会话对象。

  (2)通过超链接打开的新窗口,新窗口的会话与其父窗口的会话相同

  四、Session和Cookie的区别

  (1)session 将数据存储在服务器上,cookies 存储在客户端

  (2)session是一个内置对象,它的属性可以是任意类型,而Cookie对象只能设置字符串

  (3)Session没有数据大小限制,Cookie有数据大小限制

  (4)会话数据是安全的,cookies相对不安全

  自动登录

  

7天内自动登录

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线