java中的Servlet(二)
来源:互联网 发布:人工智能语音计算器 编辑:程序博客网 时间:2024/05/02 00:38
Cookie
(1)什么是cookie?
网站为了识别用户身份而在浏览器端
存放的少量的数据。
(2)cookie的工作原理
浏览器访问web服务器时,服务器会将
少量的数据以"set-cookie"消息头的方式发
送给浏览器,浏览器会将这些数据临时保存
下来。当浏览器再次访问服务器时,浏览器
会将这些数据以"cookie"消息头的方式发送
给服务器。
(3)如何添加一个cookie
Cookie c = new Cookie(String name,
String value);
response.addCookie(c);
(4)查看cookie
Cookie[] request.getCookies();
注:
该方法有可能返回null。
String cookie.getName();
String cookie.getValue();
(5)编码问题
cookie只能存放合法的ascii字符,对于
中文,需要将中文转换成相应的ascii字符
的表示形式。
String URLEncoder.encode(String str,
String charset);
String URLDecoder.decode(String str,
String charset);
注意:在添加cookie时,最好对
要添加的数据都进行编码处理。
(6)生存时间问题
默认情况下,浏览器会将cookie保存在
内存里面,浏览器关闭之后,cookie会被
删除。
可以通过
setMaxAge(int seconds)设置cookie
的生存时间。
注意:
a.单位是秒。
b.值可以 > 0
浏览器会将cookie保存在硬盘上,
超过指定时间,cookie会被删除。
可以 < 0
默认情况(放到内存)
可以 = 0
删除cookie。
比如,要删除一个名称为"city"
的cookie:
Cookie c =
new Cookie("city","");
c.setMaxAge(0);
response.addCookie(c);
(7)路径问题
a.什么是cookie的路径问题
浏览器向服务器发送请求时,会比较
要访问的地址是否与cookie的路径
匹配,只有匹配的cookie才会被发送。
b.cookie默认路径
等于添加该cookie的组件的路径。
c.匹配规则
要访问的地址与cookie的路径相等
或者是其子路径。
d.修改路径
setPath(String path)
比如
cookie.setPath("/web01");
(8)cookie的限制
a.不安全,对于敏感数据一定要加密。
b.可以被禁止。
c.只能够保存少量的数据(约4k)
d.数量也有限制(约几百个)。
e.只能保存字符串。
练习:
写一个Find_addCookieServlet,该servlet
会先查看有没有一个名称为"cart"的cookie,
如果有,则显示该cookie的值;如果没有,
则创建之。
不用考虑编码问题和生存时间问题。
session(会话)
(1)session是什么
是服务器为维护状态而创建的一个对象。
(2)工作原理
浏览器访问服务器时,服务器会创建一个
session对象(有一个sessionId,值是
唯一的)。服务器会将这个sesssionId以
cookie的方式发送给浏览器,浏览器会
将sessionId保存下来。
当浏览器再次访问服务器时,
会将sessionId发送给服务器,服务器依据
sessionId找到对应的session对象。
(3)如何获得session对象?
方式一
HttpSession s =
request.getSession(boolean flag);
当flag = true时
先查看请求当中是否有sessionId,
如果没有sessionId,则创建一个session
对象。如果有sessionId,依据这个
sessionId查找对应的session对象,
如果找到了,则返回;找不到,则创建
一个新的session对象。
当flag = false时
先查看请求当中是否有sessionId,
如果没有sessionId,返回null。
如果有sessionId,依据这个
sessionId查找对应的session对象,
如果找到了,则返回;找不到,返回null。
方式二
HttpSession s =
request.getSession();
等价于 request.getSession(true)。
0 0
- java中的Servlet(二)
- Java进阶(二)Servlet
- java Servlet(二)生命周期
- Java Servlet初学(二)
- servlet复习中的一些收获(二)
- Java学习(二)servlet+ tomcat+ myeclipse
- Java Web 学习笔记(二)servlet
- Java中Servlet的使用(二)
- Java Servlet学习二
- Java Servlet(二) Filter
- java Servlet 二
- 关于JAVA中的servlet
- Java中的Servlet
- Java Web中的Servlet
- java中的Servlet
- Java中的Servlet
- java中的servlet
- Java Servlet原理学习(二)
- java中的Servlet
- Yii2 理解Object
- TensorFlow官方教程学习笔记(二)——MNIST入门
- Linux 入门笔记3 —— 安装第三方库
- orge terrain
- java中的Servlet(二)
- python第九天
- QuickBI中如何实现向下钻取的动态地图仪表板
- java字符流
- Yii2 创建项目
- 文章标题
- 如何做好软件项目策划
- 博为峰Java技术文章 ——JavaSE Swing 按钮组件的综合运用
- Android中的NDK(二)