Servlet学习笔记07——什么是cookie,session?
2024-08-28 15:37:35
7)cookie的路径问题
a.什么是cookie路径问题?
浏览器在向服务器上的某个地址发送请求时,
会查看cookie的路径是否与该地址匹配,只有
匹配的cookie才会被发送。
b.cookie的默认路径
等于添加该cookie的web组件的路径。
比如
/day07/biz01/addCookie.jsp添加了一个
cookie,则该cookie的默认路径是"/day07/biz01"
c.匹配规则:
请求路径必须等于cookie的路径,或者是其子路径。
比如
cookie的路径是 "/day07/biz01",则
如果请求路径是"/day07/findCookie1.jsp",
不匹配(即该cookie不会发送给服务器)。
如果请求路径是"/day07/biz01/findCookie2.jsp",匹配。
如果请求路径是"/day07/biz01/sub/
findCookie3.jsp",匹配。
d.修改cookie的路径
cookie.setPath(String path);
8)cookie的限制
a.cookie不安全。
注:对于敏感的数据,尽量不要以cookie的
形式存放。如果要存放在cookie里面,
一定要加密。
b.cookie可以被用户禁止。
c.cookie只能保存少量的数据。(大约是4k左右)
d.cookie的数量也有限制。
注:
浏览器只能存放约几百个cookie。
e.cookie只能存放字符串。
2.Session(会话)
(1)什么是session?
服务器端为了保存状态而创建的一个特殊的对象。
注:
该对象有一个唯一的id,一般称之为sessionId。
(2)工作原理
当浏览器第一次访问服务器时,服务器会创建
session对象,并且将sessionId默认以cookie的
形式发送给浏览器;
当浏览器再次访问服务器时,会将sessionId发
送过来,服务器可以利用sessionId找到对应的
session对象。
(3)如何获得session对象?
1)方式一
HttpSession s =
request.getSession(boolean flag);
注:
a. HttpSession是一个接口。
b. 当flag为true时,先查看请求当中有没有
sessionId,如果没有,创建一个session对象;
如果有,则依据sessionId查找对应的
session对象,如果找到了,则返回,
找不到,则创建一个新的session对象。
c. 当flag为false时,先查看请求当中有没有
sessionId,如果没有,返回null;
如果有,则依据sessionId查找对应的
session对象,如果找到了,则返回,
找不到,返回null。
2)方式二
HttpSession s =
request.getSession();
等价于 request.getSession(true)。
(4)绑订数据相关的几个方法
//绑订数据
setAttribute(String name,Object obj)
//依据绑订名,获得绑订值
Object getAttribute(String name)
//解除绑订
removeAttribute(String name)
(5)session超时
1)什么是session超时?
服务器会将空闲时间过长的session对象删除掉。
注:
a.这样做的目的是为了节省内存空间的占用。
b.大部分服务器默认的时间限制是30分钟。
2)如何修改超时时间限制?
方式一
修改web.xml文件中的配置
<session-config>
方式二
setMaxInactiveInterval(int seconds)
(6)删除session
invalidate()
3.session相关的案例
(1)登录
a.流程
用户填写用户名和密码并提交,
服务器端依据用户名和密码查询数据库,
如果有匹配的记录,则登录成功(返回欢迎页面);
否则 登录失败(在登录页面中,提示用户名或密码错误)。
最新文章
- bash 取文件特定行
- JAVA学习博客---2015-6
- Jenkins用户配置(安装好jenkins后,怎么配置用户管理、权限管理)
- Kendo UI
- 第六周PSP
- Entity Framework后台采用分页方式取数据与AspNetPager控件的使用
- https资料
- android studio自动导包
- c# 委托 和 事件
- java-基础练习题3
- T-SQL:SQL Server-数据库查询语句基本查询
- js获取IP地址的方法小结
- [Python学习笔记][第四章Python字符串]
- 苹果新的编程语言 Swift 语言进阶(六)--函数和闭包
- C# 基础知识 (三).主子对话框数值传递
- Net分布式系统之七:日志采集系统(1)
- Win10安装cygwin并添加apt-cyg
- OVS常用命令与使用总结
- PowerShell 实现批量下载文件
- JVM 监控,调优,调试
热门文章
- gcc标准,c++中的inline
- php 自带加密、解密函数
- 自定义java代码快捷生成器使用与问题解决
- Hack Knowledges
- 高精度运算——java
- join() 和 sleep() 区别
- HihoCoder#1513 : 小Hi的烦恼(五维数点 bitset 分块)
- 微信公众平台开发——helloworld
- js call(),apply(),对象冒充,改变变量作用域
- Html : 规范html代码的网站