马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
Cookie详解
Cookie不只有name和value两个属性
Cookie的maxAge:最大时长,单位:秒
例如:cookie.setMaxAge(60)表示这个Cookie会被浏览器保存到硬盘上
maxAge>0:浏览器会把Cookie保存到硬盘上,有效时长为maxAge值
maxAge<0:Cookie只在浏览器内存中存在,当用户关闭浏览器时,浏览器进程结束,Cookie同时销毁
MaxAge=0:浏览器马上删除这个Cookie
Cookie的path
Cookie的path由服务器创建Cookie时配置
浏览器访问服务器相应的路径,则归还相应的Cookie
> 例如:
<> aCookie.path=/day11_1/; bCookie.path=/day11_1/jsps/; cCookie.path=/day11_1/jsps/cookie/;
<> 访问:/day11_1/index.jsp时,归还:aCookie
<> 访问:/day11_1/jsps/a.jsp时,归还:aCookie、bCookie
<> 访问:/day11_1/jsps/cookie/b.jsp时,归还:aCookie、bCookie、cCookie
Cookie的path默认值:当前访问路径的父路径。例如在访问/day11_1/jsps/a.jsp时,响应的cookie,那么这个cookie的默认path为/day11_1/jsps/
Cookie的domain(了解)
> domain用来指定Cookie的域名!当多个二级域中共享Cookie时才有用。
> 例如;www.baidu.com、zhidao.baidu.com、news.baidu.com、tieba.baidu.com之间共享Cookie时可以使用domain
> 设置domain为:cookie.setDomain(".baidu.com");
> 设置path为:cookie.setPath("/");
Cookie中不能存在中文
如果要存,必须进行编码、解码
// 保存
Cookie c = new Cookie("username", URLEncoder.encode("张三", "utf-8"));//出错!
response.addCookie(c);
// 获取
Cookie[] cs = request.getCookies();
if(cs != null) {
for(Cookie c : cs){
if("username".equals(c.getName())) {
String username = c.getValue();
username = URLDecoder.decode(username, "utf-8");
}
}
}
HttpSession
1、Httpsession 不是HTTP协议制定的
由JavaWeb提供的,用来会话跟踪的类。Session是服务器端对象,保存在服务器端
Httpsession是Servlet三大域对象之一(request ,session,application(ServletContext))
所以它也有setAttribute() getAttribute() removeAttribute()
Httpsession底层依赖Cookie,或者URL重写
2、作用
会话范围:
会话范围是某个用户从首次访问服务器开始,到该用户关闭浏览器结束
服务器会为每个客户端创建一个session对象,session被服务器保存到一个Map中,这个Map被称之为session缓存
Servlet中得到session对象:
HttpSession session=request.getSession()
JSP中得到session对象:
Session是jsp内置对象,直接使用
例子1:保存,获取session <%
session.setAttribute("aaa","AAA");
%>
<%
String s=(String)session.getAttribute("aaa");
%>
<%=
s
%>
|