创建servlet程序知识点详解---servlet-day07
情景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的更多相关文章
- 创建servlet程序知识点详解---servlet-day01
方法调用完后,其中的所有局部变量都会消失 ###网络架构 -CS:Client Server 客户端服务器 特点:每种平台都需要开发相对应的app, 开发成本高 功能升级需要下载最新的客户端,用户 ...
- 创建servlet程序知识点详解---servlet-day05
jdbc.properties怎么写? 把秘密改为自己电脑设置的 password url 3306 是安装mysql时所确定的端口 后面还可以接字符集的限定 #1 jsp是什么?(java ser ...
- 创建servlet程序知识点详解---servlet-day03
#1.表单包含有中文参数值,如何处理? ##(1)为什么会有乱码? 表单提交时,浏览器会对中文参数值进行编码/ 注:会按照表单所有的页面打开时所使用的字符集进行编码 比如,浏览器会使用utf-8对中文 ...
- 创建servlet程序知识点详解---servlet-day12
自定义标签 (1)编程步骤 step1 jsp标签分为复杂标签技术(old),简单标签(new) 注(了解) jsp标签技术分为复杂标签技术(old),简单标签技术(new) step2 ###MVC ...
- 嵌入式Linux应用程序开发详解------(创建守护进程)
嵌入式Linux应用程序开发详解 华清远见 本文只是阅读文摘. 创建一个守护进程的步骤: 1.创建一个子进程,然后退出父进程: 2.在子进程中使用创建新会话---setsid(): 3.改变当前工作目 ...
- Activity知识点详解
Activity知识点详解 一.什么是Activity 官方解释: The Activity class is a crucial component of an Android app, and t ...
- Linux Bash命令关于程序调试详解
转载:http://os.51cto.com/art/201006/207230.htm 参考:<Linux shell 脚本攻略>Page22-23 Linux bash程序在程序员的使 ...
- VS2010开发程序打包详解
VS2010开发程序打包详解 转自:http://blog.sina.com.cn/s/blog_473b385101019ufr.html 首先打开已经完成的工程,如图: 下面开始制作安装程序包. ...
- Java线程创建形式 Thread构造详解 多线程中篇(五)
Thread作为线程的抽象,Thread的实例用于描述线程,对线程的操纵,就是对Thread实例对象的管理与控制. 创建一个线程这个问题,也就转换为如何构造一个正确的Thread对象. 构造方法列表 ...
随机推荐
- maven报 Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile(defalut-compile) on project 项目名称:No such compile 'javac'
这个问题纠结了一天,在另外一个电脑是正常的,但是从服务器下载下来到另外一个电脑的时候却出现了如下图问题 看到javac大家都会想到是编译出现问题,而本地的配置如下图所示: 看着配置都是一致的,会是哪里 ...
- C# 如何通过mailto标签和SMTP协议两种方式发送邮件
本文主要讲解如何通过如现mailto标签和SMTP协议两种方式发送邮件,下面就直入主题 方法一.通过mailto标签发送邮件 通过mailto不是正真意义上的发送邮件,它只是会自动调用我们本地默认的邮 ...
- [工具] Altova UModel® 2017 is a UML tool for software modeling & application development.
https://cdn.sw.altova.com/v2017sp2a/en/MissionKitEnt2017sp2.exe https://cdn.sw.altova.com/v2017sp2a/ ...
- 本地上传文件至服务器的技巧(linux文件压缩及解压文件)
linux(ubuntu)文件解压及压缩文件 ubuntu支持文件的解压及压缩功能, 如果ubuntu上面没有安装过unzip工具的话,可以通过下面命令安装: sudo apt-get install ...
- vue的组件基础
组件分为全局组件和局部组件. 组件的核心是template:所有的数据都为template服务. 父组件子组件传值:因为子组件是父组件的个标签,完全等同于添加动态属性: 然后子组件能够通过props: ...
- 移动端如何用swiper实现导航栏效果
在移动端如何用swiper实现导航栏效果 我们在写移动端的时候会有滑动和点击导航后滑动到目标页面功能:而这个功能如果自己写的话会很麻烦,所以我在这推荐一下swiper这个插件. 其实swiper中的官 ...
- 如何将AAC音频转换成MP3格式
我们应该怎样将AAC音频转换成MP3格式呢?AAC是一种专为声音数据设计的文件压缩格式,相对于MP3音频来说更加高效,性价比跟高.但是因为MP3音频格式的通用性,我们还是时常需要将AAC音频转换成MP ...
- 这 10 款良心 Windows 软件,改变你对国产的认知
提起国产 Windows 软件,你可能首先想到的是捆绑安装.弹窗广告.卸载残留等关键词.尽管一些所谓「大厂」的确致力于拉低业界的下限,但依然有开发者坚守底线,为改变整个生态圈而默默努力.今天,少数派就 ...
- Ubuntu软件安装和查看已安装相关知识
说明:由于图形化界面方法(如Add/Remove... 和Synaptic Package Manageer)比较简单,所以这里主要总结在终端通过命令行方式进行的软件包安装.卸载和删除的方法.一.Ub ...
- sqlserver开启远程访问
1.通过本地连接数据库,选择数据库——右键——属性 2.在连接选项勾选“允许远程连接到此服务器” 3.打开sqlserver配置管理器 4.到sqlserver网络配置——XXX的协议——TCP/IP ...