Cookie是web服务器发送到浏览器的间断文本信息,以后在访问同一个web站点或域时浏览器就会毫无更改的返回该文本信息,通过让服务器读取以前发送到客户端的信息,站点就能为访问者提供许多方便,例如无需重新登录.

资料源自于《Servlet与JSP核心技术》,我看完后,重新敲一遍以便于增加理解.

设置和读取cookie的例子

import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class SetCookies extends HttpServlet {private static final long serialVersionUID = 2380669421746720857L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {for(int i = 0; i < 3; i++) {Cookie cookie = new Cookie("Session-Cookie-"+i, "Cookie-Value-S"+i);resp.addCookie(cookie);cookie = new Cookie("Persistent-Cookie-"+i, "Cookie-Value-P"+i);cookie.setMaxAge(3600);resp.addCookie(cookie);}PrintWriter out = resp.getWriter();out.print("<a href=\"/SetCookies/ShowCookies\">show the cookies</a>");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {doGet(req, resp);}}

以上是设置cookie,session cookie表示当前的cookie,没有设定时间,默认时间为负数。

persistent cookie表示持久性的cookie,设定时间为一小时.

测试目的,关闭浏览器后重新打开,理应看到persistent cookie;

showCookies.java如下

import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class ShowCookies extends HttpServlet {private static final long serialVersionUID = 2380669421746720857L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {Cookie[] cookies = req.getCookies();StringBuilder table = new StringBuilder();for(int i = 0; i < cookies.length; i++) {table.append("<table border = 1 align = \"center\"><tr><th>Cookie Name</th><th>Cookie value</th></tr>");table.append("<tr><td>"+cookies[i].getName()+"</td><td>"+cookies[i].getValue()+"</td></tr>");}PrintWriter out = resp.getWriter();out.print(table);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {doGet(req, resp);}}

程序跑起来如下

设置cookies

显示cookies

关掉浏览器重新打开

直接浏览网址http://localhost:8080/SetCookies/ShowCookies

可以看到预期效果

persistent cookie生效了.

源码地址http://www.oschina.net/code/snippet_778987_18392

本人典型ssh出道,工作半年,回头学习servlet,请多多指教!

转载于:https://my.oschina.net/liangzhenghui/blog/109133

servlet学习--Cookie小应用相关推荐

  1. 跟小博老师一起学Servlet ——Servlet之COOKIE

    Cookie概念 Cookie直译为小甜甜,对于计算机而言cookie是保存在浏览侧一小段数据.每种浏览器都有自己的cookie存储空间,一般不能相互访问.Cookie也是把双刃剑, 它带来很便利的同 ...

  2. 一步一步学习Servlet之Cookie使用

    所谓Cookie也就是解决,同一用户不同请求之间的数据共享问题使用了重定向,会发现浏览器发起的信息无法得到,也就是发送的不同请求的数据共享问题,为了解决此问题,引入了Cookie,存储在浏览器中,Co ...

  3. 编程基础---java Servlet 学习

    来源1 来源2 来源3 Servlet 为创建基于 web 的应用程序提供了基于组件.独立于平台的方法,可以不受 CGI 程序的性能限制.Servlet 有权限访问所有的 Java API,包括访问企 ...

  4. Servlet学习记录

    目录 目录 前言 什么是Servlet Servlet生命周期 Servlet工作原理 Servlet的类层次结构 实现Servlet的三种方式 1) 实现Servlet接口 2) 继承Generic ...

  5. Web页面或app等前端页面之Java Web的JSP、Servlet、Cookie、Session等技术小结

    Java Web学习,掌握JSP.Servlet.Cookie.Session等内容,使用JSTL进行数据展示完成实际应用. 2.3.1 XML基础 XML的用途.语法规则.语义约束.如何解析XML, ...

  6. Servlet—07—Cookie; Seesion;

    一.Cookie 在学习Cookie之前,我们先写一下,一个servlet类里,重写父类service方法的具体步骤: 1 service() 2 { 3 //设置请求编码格式 4 //设置响应编码格 ...

  7. 微信小程序最新开发资源汇总,对学习微信小程序的新手有一定帮助

    微信小程序最新开发资源汇总,希望给想学习或正在学习微信小程序开发的同学们带来一定帮助,汇总的小程序资源有点繁杂,各种类型的小程序demo都有,大家可以选择自己想要的demo进行下载学习.这些微信小程序 ...

  8. Servlet的Cookie和Session机制

    Servlet Cookies Cookies定义:Cookies是存储在客户端计算机上的文本文件,并保留了用户的各种跟踪信息. Cookies作用:会话保持,如完成用户的登录与状态保持 Cookie ...

  9. 学计算机excel就很好吗,零基础学习excel小技巧

    零基础转行IT?如今IT行业如日中天,发展态势非常好,可谓是朝阳产业.因此,越来越多的人想进入IT行业,但苦于对it不了解,零基础不知IT深浅,那今天就和大家分享一下,零基础转行it该选择什么方向? ...

最新文章

  1. C++知识点62——模板实参推断与函数模板的特化
  2. Mycat 月分片方法 - pursuer.chen - 博客园
  3. 没有mssqlserver的协议_LoadRunner是什么 LoadRunner协议选择原则介绍【图文】
  4. linux守护进程原理及创建详解
  5. CSS 小结笔记之清除浮动
  6. [react] React组件的构造函数有什么作用?
  7. node mysql await_javascript – node.js async / await与MySQL一起使...
  8. [webpack-cli] Unable to load ‘@webpack-cli/serve‘ command
  9. join实例 oracle_oracle中join联合查询
  10. 【算法】剑指 Offer 53 - II. 0~n-1中缺失的数字
  11. hihocoder 1388 Periodic Signal
  12. Android应用程序键盘(Keyboard)消息处理机制分析(19)
  13. 关于近期卡巴斯基6.0授权文件被封的解决方案
  14. Vue后台管理系统项目总结
  15. 本学期课程教学要解决问题要点备忘录
  16. gamit数据处理—5.遇到的问题
  17. PySwitch - Python 环境快速切换
  18. 网易云音乐8.0版本背后的野心
  19. 新手使用CAD制图-需要了解的软件常识
  20. 一篇文章入门Spring

热门文章

  1. PMBOK(第六版) PMP笔记——《十一》第十一章(项目风险管理)
  2. 8.3 直接插入排序
  3. 数据库表字段命名规则
  4. Java 随心笔记10
  5. ansible安装及使用
  6. 重装JDK后Tomcat和Eclipse的配置
  7. C#静态类 转载:(原文:http://www.cnblogs.com/chenlulouis/ )
  8. Android自动化测试 - 自动化测试工具比较
  9. 【Maps】【E都市】
  10. flash也玩p2p