您的位置:首页 > 其它

【cookie/session】会话技术

2014-04-08 19:03 405 查看
 会话:当访问web资源之后,通过连接继续请求当前站点的资源,然后关闭浏览器的整个过程。

* 会话技术:cookie、session

* cookie:将服务器的数据保存到浏览器端的技术

* 要求保存数据:服务器

* 保存数据:浏览器

* IE;将cookie保存到指定目录中,以文件的形式存储

* 火狐或谷歌:将cookie保存到指定的文件中

* 使用HTTP协议进行通信

* 会话级cookie:当整个会话结束后,cookie信息将被删除(cookie在内存中)

* 持久化cookie:将cookie保存到硬盘中

* setMaxAge

* 单位:秒

* 如果设置的值为零,则进行删除操作。

* request.getCookies();获得当前web项目的所有的cookie信息

* 获得当前浏览器中的cookie

*
获得当前servlet所在目录,以及之上的所有目录下的cookie信息

* 通过setPath可以设置cookie的访问路径

* 在cookie中存放中文

* 编码:String returnData  = URLEncoder.encode(data, "UTF-8");

* 解码:String value = URLDecoder.decode(c.getValue(), "UTF-8");

* cookie的value可以设置多少个字符:4kb

* session:服务器在服务器端创建一个内存区域,用来存放当前用户的所有信息,通过cookie关联。

* 前提:必须使用cookie

* session:

* tomcat创建

* 销毁:30分钟
* URL重写

* 一般情况选择encodeURL

* 两个方法区别在于,如果参数为空字符串,返回结果不同。
public String encodeURL(String url) {

String absolute = toAbsolute(url);
if (isEncodeable(absolute)) {
// W3c spec clearly said
if (url.equalsIgnoreCase("")){  //****
url = absolute;
}
return (toEncoded(url, request.getSessionInternal().getIdInternal()));
} else {
return (url);
}
}

public String encodeRedirectURL(String url) {
if (isEncodeable(toAbsolute(url))) {
return (toEncoded(url, request.getSessionInternal().getIdInternal()));
} else {
return (url);
}
}


* 注意:参数url必须有效,否则返回没有改变的URL
* 当使用"/"开头,相对于web站点

* response.encodeURL("/day07/urlSessionServlet2")

* /day07/urlSessionServlet2;jsessionid=F85DB5EFDDB9A6B170AF2B4959EFC4FC
* 获得Web的绝对路径

String absolute = toAbsolute(url);

* http://localhost:8080/day07/ * 总结:

* 需要考虑用户的Cookie是否禁用了

* 将所有的链接全部进行URL重写(过滤器)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cookie session