热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Oracle知识—HTTPServlet中持久化状态

HTTP协议的无状态1.在HTTP协议中无状态的优缺点a)HTTP交互是无状态的无状态是指,当浏览器发送请求给服务器的时候,服务器响应,但是同一个浏览器再发送请求给服务器的时候,他会响应,但是他不知道你就是刚才那个浏览器。b)优点i.客户浏览器不会注

HTTP协议的无状态 1. 在HTTP协议中无状态的优缺点 a) HTTP交互是无状态的 无状态是指,当浏览器发送请求给服务器的时候,服务器响应,但是同一个浏览器再发送请求给服务器的时候,他会响应,但是他不知道你就是刚才那个浏览器。 b) 优点 i. 客户浏览器不会注

  HTTP协议的无状态

  1. 在HTTP协议中无状态的优缺点

  a) HTTP交互是无状态的

  无状态是指,当浏览器发送请求给服务器的时候,服务器响应,但是同一个浏览器再发送请求给服务器的时候,他会响应,但是他不知道你就是刚才那个浏览器。

  b) 优点

  i. 客户浏览器不会注意到服务器出现故障并重启.

  ii. 在服务器不需要先前信息时它的应答就较快

  c) 缺点

  i. 对于事务处理没有记忆能力,可能导致每次连接传送的数据量增大

  ii. 很难产生收集信息去产生良好用户体验的一组页面.

  2. HTTP如果有状态的好处

  a) 减少数据的传送量

  b) 认证网页可以收集用户的认证信息

  c) 可以定义用户的对网页的访问权限

  COOKIE的原理和应用

  1. COOKIE

  a) 定义:

  是一种由服务器发送给客户的片段信息,存储在客户端浏览器的内在中或硬盘上,在客户随后对该服务器的请求中发回它。

  b) COOKIE规范:

  i. Netscape规范(版本0):

  ii. RFC2109(HTTP状态管理机制,,版本1):

  c) 响应报头:

  Set-COOKIE: NAME=VALUE; Comment=value; Domain=value; Max-Age=value; Path=value; Secure; Version=1*DIGIT

  d) 其他

  COOKIE中文译为小甜饼,是由Netscape公司发明的。Netscape公司也是最早开发浏览器的公司,在互联网刚刚发展的前期,它凭借着先入为主的优势Netscape也曾经成为最流行的浏览器。但由于windows95的普及,微软公司将IE浏览器与windows进行绑定销售,Netscape逐渐销声匿迹,不为人知了。但现在大多数的互联网协议与规范都源于Netscape公司的产品。COOKIE就是其中之后。它是一种由服务器发送给客户的片段信息,它可以存储在客户端浏览器的内在中或硬盘上,然后在客户随后对该服务器的请求中发回它。COOKIE目前遵循的规范主要是两种,一个就是Netscape规范,它的规范文件可以在找到。另一个是RFC2109,它的规范文件可以在上找到。这两个规范,规定了在HTTP协议中,关于COOKIE的报头的形式。比如,在RFC2109规范中,规定了响应报头的形式是这样子的。Name是COOKIE的名字,vlue是它的值。Name=value属性-值对必须首先出现,在此之后的属性值对可以以任何顺序出现。Comment属性是可选的,因为COOKIEs可能包含关于用户私有的信息,这个属性允许服务器说明这个COOKIE的使用,用户可以检查这个信息,然后决定是否加入或继续会话。 Domain属性是可选的,用于指定COOKIE在哪一个域有效,所指定的域必须以点号开始。Max-age属性是可选可的,用于定义COOKIE的生存时间,以秒为单位,如果超过了这个时间,客户端应该丢弃这个COOKIE,如果指定的秒数为0,表示这个COOKIE应该立即被丢弃。Path属性是可选的,用于指定这个COOKIE在哪一个URL子集下有效。Secure属性是可选的,它没有值,用于指示浏览器使用安全的方式与服务器交互。Version属性是必需的,它的值是一个十进制的整数,标识COOKIE依照的状态管理规范的版本,对于RFC2109 Version应该设为1.

  2. 使用COOKIE编程

  a) 特点

  i. 以键-值对的方式记录会话跟踪的内容

  ii. COOKIE的持久性较高

  iii. 用户可以手动限制COOKIE的使用

  iv. Session可以用来替代COOKIE

  3. 设置一个COOKIE

  a) 创建COOKIE:

  COOKIE c = new COOKIE("MyName", "MyValue");

  b) COOKIE的方法:

  i. getConnment()、setComment(String purpose)

  ii. getDomain()、setDomain(String pattern)

  iii. getMaxAge()、setMaxAge(int expiry)

  iv. getName()、getValue()

  v. setValue(String newValue)

  vi. getPath()、setpath(String uri)

  c) 使用COOKIE

  i. Response.addCOOKIE()

  ii. Request.getCoonkie()

  4. 实例—登录程序

  a) 功能:

  i. 使用COOKIE来保存用户登录信息

  ii. 初次登录,将信息保存到客户端的硬盘上

  iii. 再次访问,先验证用户登录信息,通过后显示欢迎信息

  b) 步骤:

  i. 第一步:编写LoginServlet.java和GreetServlet.java

  ii. 第二步:编译JAVA源文件

  iii. 第三步:部署servlet

  5. 实例—LoginSerlvet

  6. 实例—GreetServlet

  7. 向浏览器输出会话

  a) COOKIE

  i. 跟踪跟浏览器有关的会话

  ii. 有些浏览器不支持

  iii. 有些用户由于安全原因不使用

  b) 重写URL

  i. 通过一个请求URL的会话ID把一个会话绑定到一个浏览器上

  ii. 耗费时间去扫描页面和URL重定向

  iii. 使用encodeURL()和encodeRedirectURL()

  Session的原理和应用

  1. Session

  a) 定义:

  i. 一个浏览器到一个服务器相关的HTTP交互的集合.

  ii. 是被浏览器访问的Servlet获取的与那些交互相关的数据集合.

  b) javax.servlet.http.HttpSession支持的接口.

  2. HttpSession接口

  a) HttpSession接口中的方法

  i. public Object getAttribute(String name)

  ii. public void setAttribute(String name,Object value)

  iii. public void removeAttribute(String name)

  iv. public int setMaxInactiveInterval()

  v. public void invalidate()

  3. 补充说明

  a) Servlet运行就会创建会话.

  b) Servlet可以通过下面的方法来获得session对象:

  getSession()

  c) 任何servlet可以请求创建会话.

  d) 对处理目标浏览器中请求的所有Servlet都可以访问会话中的信息.

  e) 会话会由于浏览器的不活跃而超时而失效。

  4. COOKIE和Session比较

  a) session

  i. 由服务器端创建

  ii. 由服务端保存信息

  iii. 打开新的浏览器,就会开始一次新的会话

  b) COOKIE

  i. 由服务器发送给客户端的片段信息,存储在客户端浏览器的内存中或硬盘上。

  ii. 由客户端保存信息

  iii. 在COOKIE有效期间内,多个浏览器可访问同一个COOKIE对象

  回顾COOKIE和Session

  COOKIE在一个浏览器中存储一个变量和对应的值.

  COOKIE可以由浏览器用户配置.

  不是所有的浏览器都支持COOKIE.

  可以使用addCOOKIE()和getCOOKIE ()方法获取COOKIE.

  session是由浏览器和网络服务器之间的交互所关联的数据集合.

  每打开一个浏览器,就会创建一个新的session对象

  会话开发时存在下列方法:

  getSession()

  setAttribute(key, value)

  getAttribute(key)

推荐阅读
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • Valve 发布 Steam Deck 的新版 Windows 驱动程序
    Valve 最新发布了针对 Steam Deck 掌机的 Windows 驱动程序,旨在提升其在 Windows 环境下的兼容性、安全性和性能表现。 ... [详细]
  • 本文总结了汇编语言中第五至第八章的关键知识点,涵盖间接寻址、指令格式、安全编程空间、逻辑运算指令及数据重复定义等内容。通过详细解析这些内容,帮助读者更好地理解和应用汇编语言的高级特性。 ... [详细]
  • 本文介绍如何使用 Sortable.js 库实现元素的拖拽和位置交换功能。Sortable.js 是一个轻量级、无依赖的 JavaScript 库,支持拖拽排序、动画效果和多种插件扩展。通过简单的配置和事件处理,可以轻松实现复杂的功能。 ... [详细]
  • 探讨一个显示数字的故障计算器,它支持两种操作:将当前数字乘以2或减去1。本文将详细介绍如何用最少的操作次数将初始值X转换为目标值Y。 ... [详细]
  • 如何在WPS Office for Mac中调整Word文档的文字排列方向
    本文将详细介绍如何使用最新版WPS Office for Mac调整Word文档中的文字排列方向。通过这些步骤,用户可以轻松更改文本的水平或垂直排列方式,以满足不同的排版需求。 ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • 本文详细介绍了如何在 Spring Boot 应用中通过 @PropertySource 注解读取非默认配置文件,包括配置文件的创建、映射类的设计以及确保 Spring 容器能够正确加载这些配置的方法。 ... [详细]
author-avatar
LMS柳树_
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有