【cookie/session】会话技术

 会话:当访问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重写(过滤器)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值