情景1:

京东在买东西的时候,只有结帐的时候才会要求必须登录账户

#1.状态管理

##(1)什么是状态管理?

  将浏览器与web服务器之间多次交互当做一个整体来处理,并且将多次交互所涉及的数据(即状态)保存下来

##(2)如何进行状态管理

  方式一:将状态保存在客户端(浏览器端)

    cookie技术

  方式二:将状态保存在服务器端

    session技术

###(3)cookie技术

#### 1)什么是cookie?

    服务器临时存放在浏览器端的少量数据

### 2)工作原理

  浏览器访问服务器时,服务器会将少量数据以set_cookie消息头的形式发送给浏览器,浏览器将这些数据保存下来;

  当浏览器再次访问服务器,会将之前保存的这些数据以cookie消息头的形式发送给服务器  

### 3)添加cookie

  cookie c = new cookie(string name,string value);

  注:  name:cookie的名称

    value:cookie的值

  response.addcookie(c);

### 4)读取cookie

  Cookie[ ] request.getCookie();

  注:

    a.一个Cookie对象封装了一个Cookie的信息(包括了cookie的名称和值)

    string cookie.getName()

    string cookie.getValue()    

    b.有可能返回null

### 5)编码问题

  a.什么是编码问题

    cookie只能保存合法的ascii字符,中文需要转换成合法的ascii字符才可以

  b.如何处理?

  String URLEncoder.decode(String str,String charset);

  String URLDecoder.decode(String str,String charset);

  c.建议:

  在添加cookie时,对所有的值都统一使用上述方法来进行处理

###6)生存时间

  默认情况下,浏览器会将cookie保存在内存里,

  只要浏览器不关,则cookie会一直存在,可以调用cookie.setMaxAge方法来设置cookie的生存时间

  生存时间:

  setMaxAge(int seconds)

  注:  a.单位是秒

    b.值可以

      >0 浏览器会将cookie保存在硬盘上,当超过指定的时间,浏览器会将cookie删除

      <0 default 缺省值,即浏览器会将cookie保存在内存里面

      =0 删除cookie

        比如,要删除名称为city的cookie  Cookie c =new Cookie("city","");

        c.setMaxAge(0)

### 7)cookie的路径问题

  a.什么是cookie的路径问题

  浏览器在向服务器上的某个地址发送请求时,会比较该地址是否符合cookie的路径的要求,只有符合条件的cookie才会被发送

  b.cookie的默认路径

    cookie的默认路径等于添加该cookie的web组件的路径

  c.匹配规则

    比如,cookie的路径是"/day07/abc"

    如果访问的是/day07/findCookie1.jsp                 no

          /day07/abc/findCookie2.jsp          yes

          /day07/abc/sub/findCookie3.jsp    yes 

    即:  请求路径要么等于cookie的路径,要么cookie路径的子路径,则该cookies会被发送

  d.修改cookie的路径

    cookie.setPath( )

  

### 8)cookie的限制

    a.可以被用户禁止

    b.不安全   注: 不要将敏感数据以cookie的方式来保存  

    c.只能保存少量数据  注:大约是4k

    d.cookie的数量也有限制  注:大约几百个

    e.cookie只能保存字符串

    

创建servlet程序知识点详解---servlet-day07的更多相关文章

  1. 创建servlet程序知识点详解---servlet-day01

    方法调用完后,其中的所有局部变量都会消失 ###网络架构 -CS:Client Server  客户端服务器 特点:每种平台都需要开发相对应的app, 开发成本高  功能升级需要下载最新的客户端,用户 ...

  2. 创建servlet程序知识点详解---servlet-day05

    jdbc.properties怎么写? 把秘密改为自己电脑设置的 password url 3306 是安装mysql时所确定的端口  后面还可以接字符集的限定 #1 jsp是什么?(java ser ...

  3. 创建servlet程序知识点详解---servlet-day03

    #1.表单包含有中文参数值,如何处理? ##(1)为什么会有乱码? 表单提交时,浏览器会对中文参数值进行编码/ 注:会按照表单所有的页面打开时所使用的字符集进行编码 比如,浏览器会使用utf-8对中文 ...

  4. 创建servlet程序知识点详解---servlet-day12

    自定义标签 (1)编程步骤 step1 jsp标签分为复杂标签技术(old),简单标签(new) 注(了解) jsp标签技术分为复杂标签技术(old),简单标签技术(new) step2 ###MVC ...

  5. 嵌入式Linux应用程序开发详解------(创建守护进程)

    嵌入式Linux应用程序开发详解 华清远见 本文只是阅读文摘. 创建一个守护进程的步骤: 1.创建一个子进程,然后退出父进程: 2.在子进程中使用创建新会话---setsid(): 3.改变当前工作目 ...

  6. Activity知识点详解

    Activity知识点详解 一.什么是Activity 官方解释: The Activity class is a crucial component of an Android app, and t ...

  7. Linux Bash命令关于程序调试详解

    转载:http://os.51cto.com/art/201006/207230.htm 参考:<Linux shell 脚本攻略>Page22-23 Linux bash程序在程序员的使 ...

  8. VS2010开发程序打包详解

    VS2010开发程序打包详解 转自:http://blog.sina.com.cn/s/blog_473b385101019ufr.html 首先打开已经完成的工程,如图: 下面开始制作安装程序包. ...

  9. Java线程创建形式 Thread构造详解 多线程中篇(五)

    Thread作为线程的抽象,Thread的实例用于描述线程,对线程的操纵,就是对Thread实例对象的管理与控制. 创建一个线程这个问题,也就转换为如何构造一个正确的Thread对象. 构造方法列表 ...

随机推荐

  1. Tomcat以Daemon的方式启动(CentOS6&7)

    1 前言 一直以来都觉得Tomcat以root身份运行非常不安全,故研究Tomcat如何以普通用户身份运行,以下是参考网络上的一些配置实现Tomcat以daemon方式运行于CentOS 6& ...

  2. 本人SW知识体系导航 - Programming menu

    将感悟心得记于此,重启程序员模式. js, py, c++, java, php 融汇之全栈系列 [Full-stack] 快速上手开发 - React [Full-stack] 状态管理技巧 - R ...

  3. Spring MVC 知识点整理

    extend:http://www.jianshu.com/p/bef0e52067d2 1. Redis 存储方式 Redis存储机制分成两种Snapshot 和 AOF.无论是那种机制,Redis ...

  4. codeforce R 491 (div2)

    本来打完就想写的,,奈何舍友要睡了,我开个台灯感觉怪怪的,就没写. A题竟然一开始wa了...后来发现对于c和a还有c和b的关系没有判断,,丢掉了很多罚时. B题我的方法是    计算 sum,然后 ...

  5. java导入、导出Excel文件

    一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际 ...

  6. nvm的安装

    安装前可先卸载原来的node, npm, 安装成功后,可用nvm装node 一.用nvm-noinstall.zip安装 1.nvm-windows 下载 https://github.com/cor ...

  7. 我的WafBypass之道(upload篇)

    0x00 前言 玩waf当然也要讲究循序渐进,姊妹篇就写文件上传好了,感觉也就SQLi和Xss的WafBypass最体现发散性思维的,而文件上传.免杀.权限提升这几点的Bypass更需要的是实战的经验 ...

  8. CF3A Shortest path of the king

    The king is left alone on the chessboard. In spite of this loneliness, he doesn't lose heart, becaus ...

  9. Ubuntu 离线安装Mysql

    一.安装包 先从网络上,下载Mysql安装包,复制到U盘 下载地址:https://dev.mysql.com/downloads/mysql/ 二.挂载U盘 2.1查看分区 先输入命令  cat   ...

  10. 补充:ajax post 方式请求

    1. 什么是ajax Ajax: asynchronous  javascript  and  xml (异步js和xml) 其是可以与服务器进行(异步/同步)交互的技术之一. ajax的语言载体是j ...