Java学习之文件io流篇
Posted nice_0e3
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java学习之文件io流篇相关的知识,希望对你有一定的参考价值。
HTTP请求是无状态的,服务器不能判别两次请求是否来源于同一用户,而为了提高性能,W3C使用cookie和session的方式解决这个问题。用cookie来记录客户端用户信息,比如登陆账号密码记录,购物搜索记录等等,提高了用户体验。
cookie一般是在服务器端创建的(服务器端发送创建cookie的指令,将要创建的cookie信息封装在HTTP请求的Header里),客户端接收到Response后会解读Header里的内容,读取的Set-Cookie指令获取其内cookie信息,设置cookie。当客户端再次请求服务器时会带着那些还存活的cookie,去访问服务器。如果cookie很多,会增加客户端与服务器的数据传输量(这是session产生的原因)。
cookie是HTTP协议头中的一个字段,虽然HTTP协议本身对这个字段没有多少限制,但是cookie最终还是存在浏览器里,所有不同的浏览器对cookie的存储都有一些限制。
JavaScrit使用document.cookie属性来创建、读取和删除cookie
document.cookie="username=John Doe; expires=Thu, 18 Dec 2043 12:00:00 GMT; path=/";
var x = document.cookie;
document.cookie 将以字符串的方式返回所有的 cookie,类型格式: cookie1=value; cookie2=value; cookie3=value;
在 javascript 中,修改 cookie 类似于创建 cookie,如下所示:
document.cookie="username=John Smith; expires=Thu, 18 Dec 2043 12:00:00 GMT; path=/";
您只需要设置 expires 参数为以前的时间即可,如下所示,设置为 Thu, 01 Jan 1970 00:00:00 GMT:
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT";
document.cookie 属性看起来像一个普通的文本字符串,其实它不是。
即使您在 document.cookie 中写入一个完整的 cookie 字符串, 当您重新读取该 cookie 信息时,cookie 信息是以名/值对的形式展示的。
如果您设置了新的 cookie,旧的 cookie 不会被覆盖。 新 cookie 将添加到 document.cookie 中,所以如果您重新读取document.cookie,您将获得如下所示的数据:
如果您需要查找一个指定 cookie 值,您必须创建一个JavaScript 函数在 cookie 字符串中查找 cookie 值。
域(domain):生成该cookie的域名,如domain="www.taobao.com",由于浏览器是个注意安全的环境,所以不同的域之间是不能相互访问cookie的。路径(path):该cookie是在当前的哪个路径下生成的,如path="/my_car/"。
例 “www.qq.com” 与 “sports.qq.com” 有公用一个关联的域名”qq.com”,我们如果想让”sports.qq.com” 下的cookie被 “www.qq.com” 访问,我们就需要用到cookie 的domain属性,并且需要把path属性设置为 “/“。例:
document.cookie = “username=Darren;path=/;domain=qq.com“
;(function (document) { var Cookie = function () { }; Cookie.prototype = { /** * 添加一个cookie * @param cname cookie名 * @param cvalue cookie值 * @param exdays 几天后过期? */ addCookie: function (cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); var expires = "expires=" + d.toGMTString(); document.cookie = cname + "=" + cvalue + "; " + expires; }, /** * 获取一个cookie * @param cname * @returns {string} */ getCookie: function (cname) { var name = cname + "="; var ca = document.cookie.split(‘;‘); for (var i = 0; i < ca.length; i++) { var c = ca[i].trim(); if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return new ErrorEvent("Can‘t find the cookie. Are you sure you set it?"); }, /** * 返回所有cookie * @returns {string[]} */ getCookies: function () { return document.cookie.split(‘;‘); }, /** * 删除一个cookie * @param cname */ delCookie: function (cname) { document.cookie = cname + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT"; } }; document.Cookie = new Cookie(); })(document);
// 5秒后过期的一个cookie,浏览器会不定时的刷新检查哪些cookie还存活,不存活的就清除。 document.Cookie.addCookie(‘kine‘,‘吉吉‘,5/(24*60*60));
以上是关于Java学习之文件io流篇的主要内容,如果未能解决你的问题,请参考以下文章