HTTP Cookie详解
1.什么是HTTP Cookie?
Wikipedia给出的定义是:An HTTP cookie is a small piece of data sent from a website and stored in the user's web browser while the user is browsing.
概括一下:
1) HTTP cookie首先是数据 -> 在服务器端被创建 -> Set-Cookie响应头携带Cookie信息 -> 通过HTTP协议传输 -> 存储于客户端。
2) 当客户端再一次访问该网站的时候 -> Cookie请求头携带Cookie信息 -> 通过HTTP协议传输 -> 服务端拿到Cookie进行解析。
2. 为什么要使用Cookie
Cookie最早出现于1994年,当时网景公司的Lou Montulli首先将Cookie技术用于Web通信。随着时代的发展,Cookie的标准文档被一次次修改细化。最新的Cookie标准制定于2011年,具体可以参照RFC2965文档。
Cookie的出现是解决了HTTP协议的无状态性,为浏览器和Web服务器之间提供了一种有效的状态信息交换方式。下面通过一个简单的用户登录系统示例,简单介绍Cookie在JavaWeb中的应用。
3.项目代码示例:
1)项目结构

2)项目代码:
登陆页面login.jsp核心代码:
<%
String username = "";
String password = ""; Cookie[] cookies = request.getCookies(); if(cookies != null && cookies.length > 0) {
for(Cookie cookie: cookies) {
if(cookie.getName().equals("user")){
username = cookie.getValue();
}
if(cookie.getName().equals("pass")){
password = cookie.getValue();
}
}
}
%>
<form action="LoginServlet" method="post">
<h1>User Login</h1>
username:<input type="text" name="user" value="<%=username%>" /><br>
password:<input type="text" name="pass" value="<%=password%>" /><br>
<input type="submit" value="confirm" />
</form>
处理代码LoginSerlvet核心代码:
String username = request.getParameter("user");
String password = request.getParameter("pass");
Cookie userCookie = new Cookie("user", username);
Cookie passCookie = new Cookie("pass", password);
response.addCookie(userCookie);
response.addCookie(passCookie);
if(username.equals("petersong") && password.equals("12345")) {
request.getRequestDispatcher("/login_success.html").forward(request, response);
} else {
request.getRequestDispatcher("/login_failure.html").forward(request, response);
}
4.项目运行实例
1)第一次访问login.jsp

2)第一访问LoginServlet

3)第二次访问login.jsp

HTTP Cookie详解的更多相关文章
- cookie详解
一.cookie详解 (1)设置cookie 每个cookie都是一个名/值对,可以把下面这样一个字符串赋值给document.cookie: document.cookie="userId ...
- ASP.NET 操作Cookie详解 增加,修改,删除
ASP.NET 操作Cookie详解 增加,修改,删除 Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密).定义于RFC2109.它 ...
- 网络基础 cookie详解
cookie详解 by:授客 QQ:1033553122 cookie干嘛用的? 参见文章http 会话(session)详解: 网络基础 http 会话(session)详解 cookie分类 ...
- cookie详解(含vue-cookie)
今天看到一篇cookie的文章,写的特别详细,感谢 晚晴幽草轩 的分享,原文链接http://mp.weixin.qq.com/s/NXrH7R8y2Dqxs9Ekm0u33w 原文如下,记录到此供以 ...
- Session和Cookie详解(1)
面试常问的有关session和cookie的问题: 1.session在分布式环境下怎么解决 2.集群下如何保证session踩中 3.cookie的大小 4.服务器怎么识别一个用户的 5.sessi ...
- JavaWeb Cookie详解
代码地址如下:http://www.demodashi.com/demo/12713.html Cookie的由来 首先我们需要介绍一下,在Web开发过程中为什么会引入Cookie.我们知道Http协 ...
- Cookie 详解以及实现一个 cookie 操作库
Cookie 详解以及实现一个 cookie 操作库 cookie 在前端有着大量的应用,但有时我们对它还是一知半解.下面来看看它的一些具体的用法 Set-Cookie 服务器通过设置响应头来设置客户 ...
- [转]Cookie详解
从事 Web 开发已有近17个月:在学以致用的工作学习里,对于不怎么使用的部分,多少有些雾里探花的窘迫感-差不多是了解一二,然而又非真切的明晰:这就使得再用的时候,总要去再搜索一番:如此颇为难受,倒不 ...
- Cookie的使用、Cookie详解、HTTP cookies 详解、获取cookie的方法、客户端获取Cookie、深入解析cookie
Cookie是指某些网站为了辨别用户身份.进行session跟踪而存储在用户本地终端上的数据(通常经过加密),比如说有些网站需要登录才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的.那么我 ...
- Java web Cookie详解(持久化+原理详解+共享问题+设置中文+发送多个Cookie)
Java web Cookie详解 啥是cookie? 查询有道词典得: web和饼干有啥关系? 这个谜底等等来为大家揭晓 会话技术 web中的会话技术类似于生活中两个人聊天,不过web中的会话指的是 ...
随机推荐
- Arcmap中加载互联网地图资源
本文转载自:http://blog.3snews.net/space.php?uid=6955280&do=blog&id=67981 前一段时间想在Arcmap中打开互联网地图中的地 ...
- IOS之Objective-C学习 代理设计模式
鉴于Objective-C是不支持多继承的,所以需要用协议来代替实现其他类的方法,所以有了代理设计模式. 代理,又称委托,delegation. 代理模式可以让一个单继承的类实现父类以外其他类的方法. ...
- C#使用ADO.NET访问数据库(一)
博主好久没更新博客了,最近有点忙(打麻将0.0..),今天更新一篇C#的,我还是想坚持更新博客,分享一下自己的心得,闲话少说,开始正题~~ ADO.NET概述:ADO.NET的作用在于他是客户端访问服 ...
- Linux常见查看硬件信息指令
CPUlscpu 查看的是CPU的统计信息./proc/cpuinfo 查看每个cpu信息,如每个CPU的型号,主频等. 内存free -m 概要查看内存情况cat /proc/meminfo 查看内 ...
- Eclipse中JAR System library 没有怎么添加?
1.打开 >> Eclipse 2.右击项目 >> Build path >> Configure Build path 如图1: 图1 3.进入 ...
- 一个典型的MapRuduce实例------webcount(网站统计访客信息)
统计某一特定网站的某个时辰访客人数 所用版本:hadoop2.6.5 数据样式如下: 111.111.111.111 - - [16/Dec/2012:05:32:50 -0500] "GE ...
- RabbitMQ调试与测试工具-v1.0.1 -提供下载测试与使用
最近几天在看RabbitMQ,所以发了两天时间写了一个调试和测试工具.方便使用. 下载地址:RabbitMQTool-V1.0.1.zip
- 基于corosync+pacemaker+drbd+LNMP做web服务器的高可用集群
实验系统:CentOS 6.6_x86_64 实验前提: 1)提前准备好编译环境,防火墙和selinux都关闭: 2)本配置共有两个测试节点,分别coro1和coro2,对应的IP地址分别为192.1 ...
- 如何搭建SVN服务器,详细安装步骤。
SVN服务器端安装 下载: VisualSVN是一款图形化svn服务器.官网 http://www.visualsvn.com/server/ 下载地址: http://www.visualsvn.c ...
- angularJS(4)
angularJS(4) 一:angulaJs的作用域scope Scope(作用域) 是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带.scope 是一个 JavaScr ...