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详解的更多相关文章

  1. cookie详解

    一.cookie详解 (1)设置cookie 每个cookie都是一个名/值对,可以把下面这样一个字符串赋值给document.cookie: document.cookie="userId ...

  2. ASP.NET 操作Cookie详解 增加,修改,删除

    ASP.NET 操作Cookie详解 增加,修改,删除 Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密).定义于RFC2109.它 ...

  3. 网络基础 cookie详解

    cookie详解 by:授客 QQ:1033553122 cookie干嘛用的? 参见文章http 会话(session)详解: 网络基础 http 会话(session)详解   cookie分类 ...

  4. cookie详解(含vue-cookie)

    今天看到一篇cookie的文章,写的特别详细,感谢 晚晴幽草轩 的分享,原文链接http://mp.weixin.qq.com/s/NXrH7R8y2Dqxs9Ekm0u33w 原文如下,记录到此供以 ...

  5. Session和Cookie详解(1)

    面试常问的有关session和cookie的问题: 1.session在分布式环境下怎么解决 2.集群下如何保证session踩中 3.cookie的大小 4.服务器怎么识别一个用户的 5.sessi ...

  6. JavaWeb Cookie详解

    代码地址如下:http://www.demodashi.com/demo/12713.html Cookie的由来 首先我们需要介绍一下,在Web开发过程中为什么会引入Cookie.我们知道Http协 ...

  7. Cookie 详解以及实现一个 cookie 操作库

    Cookie 详解以及实现一个 cookie 操作库 cookie 在前端有着大量的应用,但有时我们对它还是一知半解.下面来看看它的一些具体的用法 Set-Cookie 服务器通过设置响应头来设置客户 ...

  8. [转]Cookie详解

    从事 Web 开发已有近17个月:在学以致用的工作学习里,对于不怎么使用的部分,多少有些雾里探花的窘迫感-差不多是了解一二,然而又非真切的明晰:这就使得再用的时候,总要去再搜索一番:如此颇为难受,倒不 ...

  9. Cookie的使用、Cookie详解、HTTP cookies 详解、获取cookie的方法、客户端获取Cookie、深入解析cookie

    Cookie是指某些网站为了辨别用户身份.进行session跟踪而存储在用户本地终端上的数据(通常经过加密),比如说有些网站需要登录才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的.那么我 ...

  10. Java web Cookie详解(持久化+原理详解+共享问题+设置中文+发送多个Cookie)

    Java web Cookie详解 啥是cookie? 查询有道词典得: web和饼干有啥关系? 这个谜底等等来为大家揭晓 会话技术 web中的会话技术类似于生活中两个人聊天,不过web中的会话指的是 ...

随机推荐

  1. 在终端terminal运行ReactNative程序经常出现的问题

    各种问题汇总: 1.Unable to resolve modules lodash  (这里举例lodash,这个lodash也可以是别的.意思就是缺少当前模块,所以需要安装) npm instal ...

  2. 让你少走弯路的搭建树莓派的Net与NodeJS运行环境

      树莓派是当前最火的嵌入计算平台没有之一,树莓派可以给我们无数的想象,树莓派的高性能.低功耗.低成本.可扩展性(最新的树莓派原生支持WIFI和蓝牙,这功能太赞了)深受大家的喜爱.虽然树莓派到目前为止 ...

  3. MVC View中获取action、controller、area名称

    获取控制器名称: ViewContext.RouteData.Values["controller"].ToString(); 获取Action名称: ViewContext.Ro ...

  4. 论Pair的重要性

    这些天我在用React和D3做图表,从已经实现的图表里复制了一些坐标轴的代码,发现坐标轴上的n个点里,只有第一个点下面能渲染出文字提示,其余点下面都无法渲染出文字. 和组里的FL一起百思不得其解好几天 ...

  5. 简历生成平台项目开发-STEP3第一次项目例会探讨

    时间:2016.7.13周三7点半 地点:图书馆 讨论主题:项目需求和功能分析.第一次任务分配 内容:按照之前的讨论,我们认为简历生成功能,不仅要适应学生求职的需求,更多的是要在格式和内容上满足HR的 ...

  6. Linux 6.5(oracle 11.2.0.4)单实例ASM安装

    Linux 6.5(oracle 11.2.0.4) 1.解析主机.配置网络等 /etc/hosts /etc/sysconfig/network /etc/init.d/NetworkManager ...

  7. 用application实现一个网页的浏览计数器

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  8. SQL Server 自动化运维系列

    本系列为SQL SERVER自动化运维的一些操作技巧点,所有内容都是根据日常运维过程中最经常遇到的问题,并为此形成了一些自动化运维的方式,皆为原创.... 供部分DBA和开发人员浏览借鉴,所应用平台基 ...

  9. Spark SQL 之 DataFrame

    Spark SQL 之 DataFrame 转载请注明出处:http://www.cnblogs.com/BYRans/ 概述(Overview) Spark SQL是Spark的一个组件,用于结构化 ...

  10. bug注意事项记录

    在此记录开发中需要注意的点: UI开发中注意: 1.多按钮同时点击的问题: 2.按钮连续点击的问题(按钮冷却) 3.刷新时注意数据可变性:拆分可变和不变的数据,确保只刷新可变的数据 非UI注意问题: ...