servlet4

5)编码问题
cookie只能存放合法的ascii字符。
如果要保存中文,可以将中文转换成合法
的ascii字符串的形式。
URLEncoder.encode()
URLDecoder.decode()
注:添加cookie时,建议对所有字符都统一
使用encode方法进行编码。
6)生存时间问题
a.默认情况下,浏览器会把cookie保存在
内存里面,只要浏览器不关闭,cookie就会
一直存在(浏览器关闭,则cookie就会被删除)。
b.可以调用cookie.setMaxAge(int seconds)
来设置生存时间
b1.单位是秒。
b2.值可以>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的组件的路径。
比如:
/web07/aaa/addCookie.jsp添加了
一个cookie,则该cookie的路径等
于”/web07/aaa/”
c.匹配规则
要访问的地址必须等于cookie的路径或者
是其子路径。
/web07/findCookie1.jsp no
/web07/aaa/findCookie2.jsp yes
/web07/aaa/bbb/findCookie3.jsp yes
d.设置路径
setPath(String path);
比如
cookie.setPath(“/web07”);
8)cookie的限制
a.可以被禁止
b.不安全(对于敏感数据,需要加密)
c.只能保存少量的数据(约4k)
d.数量有限制(约几百个)
e.只能保存字符串
练习:
写一个Find_addCookieServlet,先查看
有没有一个名叫”cart”的cookie,如果有,
则显示该cookie的值,如果没有,则
添加之。
不用考虑编码和生存时间问题

2.session(会话)
(1)什么是session?
服务器端为维护状态而创建的一个特殊的
对象(session对象)。
(2)session的工作原理
浏览器访问服务器时,服务器会创建session
对象(有一个唯一的id,称之为sessionId),
服务器会将这个sessionID以cookie的方式
发送给浏览器。
当浏览器再次访问服务器时,会将sessionId
发送给服务器,服务器端可以通过这个sessionId
找到对应的session对象。
(3)如何获得session对象?
1)方式一
HttpSession s =
request.getSession(boolean flag);
a.flag为true时:
查看请求当中是否有sessionId,
如果没有,则创建session对象;
如果有,依据sessionId查找相应的
session对象,如果找到了则返回,
找不到,创建一个新的session对象。
b.flag为false时:
查看请求当中是否有sessionId,
如果没有,返回null;
如果有,依据sessionId查找相应的
session对象,如果找到了则返回,
找不到,返回null。
2)方式二
HttpSession s =
request.getSession();
等价于 request.getSession(true);
(4)HttpSession提供的几个重要方法
String getId();
setAttribute(String name,Object obj);
Object getAttribute(String name);
removeAttribute(String name);
(5)session超时
1)什么是session超时
服务器会将空闲时间过长的session
对象删除掉。
注:为了节省内存空间资源。
2)服务器缺省超时限制
一般30分钟。
可以修改

30

注:不建议修改
3)setMaxInactiveInterval(int seconds)
(6)删除session
invalidate()

3.登录
step1,建表
create table user(
id int primary key auto_increment,
username varchar(50) unique,
pwd varchar(30),
name varchar(100),
gender char(1)
);
insert into user(username,pwd,name,gender)
values(‘King’,’1234’,’Giving King’,’m’);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值