会话:当访问web资源之后,通过连接继续请求当前站点的资源,然后关闭浏览器的整个过程。
* cookie的value可以设置多少个字符:4kb
* 会话技术:cookie、session
* cookie:将服务器的数据保存到浏览器端的技术
* 要求保存数据:服务器
* 保存数据:浏览器
* IE;将cookie保存到指定目录中,以文件的形式存储
* 火狐或谷歌:将cookie保存到指定的文件中
* 会话级cookie:当整个会话结束后,cookie信息将被删除(cookie在内存中)
* 持久化cookie:将cookie保存到硬盘中
* setMaxAge
* 单位:秒
* 如果设置的值为零,则进行删除操作。
* request.getCookies();获得当前web项目的所有的cookie信息
* 获得当前浏览器中的cookie
* 获得当前servlet所在目录,以及之上的所有目录下的cookie信息
* 在cookie中存放中文* 通过setPath可以设置cookie的访问路径
* 编码:String returnData = URLEncoder.encode(data, "UTF-8");
* 解码:String value = URLDecoder.decode(c.getValue(), "UTF-8");
* cookie的value可以设置多少个字符:4kb
* 前提:必须使用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重写(过滤器)