servlet学习--Cookie小应用
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小应用相关推荐
- 跟小博老师一起学Servlet ——Servlet之COOKIE
Cookie概念 Cookie直译为小甜甜,对于计算机而言cookie是保存在浏览侧一小段数据.每种浏览器都有自己的cookie存储空间,一般不能相互访问.Cookie也是把双刃剑, 它带来很便利的同 ...
- 一步一步学习Servlet之Cookie使用
所谓Cookie也就是解决,同一用户不同请求之间的数据共享问题使用了重定向,会发现浏览器发起的信息无法得到,也就是发送的不同请求的数据共享问题,为了解决此问题,引入了Cookie,存储在浏览器中,Co ...
- 编程基础---java Servlet 学习
来源1 来源2 来源3 Servlet 为创建基于 web 的应用程序提供了基于组件.独立于平台的方法,可以不受 CGI 程序的性能限制.Servlet 有权限访问所有的 Java API,包括访问企 ...
- Servlet学习记录
目录 目录 前言 什么是Servlet Servlet生命周期 Servlet工作原理 Servlet的类层次结构 实现Servlet的三种方式 1) 实现Servlet接口 2) 继承Generic ...
- Web页面或app等前端页面之Java Web的JSP、Servlet、Cookie、Session等技术小结
Java Web学习,掌握JSP.Servlet.Cookie.Session等内容,使用JSTL进行数据展示完成实际应用. 2.3.1 XML基础 XML的用途.语法规则.语义约束.如何解析XML, ...
- Servlet—07—Cookie; Seesion;
一.Cookie 在学习Cookie之前,我们先写一下,一个servlet类里,重写父类service方法的具体步骤: 1 service() 2 { 3 //设置请求编码格式 4 //设置响应编码格 ...
- 微信小程序最新开发资源汇总,对学习微信小程序的新手有一定帮助
微信小程序最新开发资源汇总,希望给想学习或正在学习微信小程序开发的同学们带来一定帮助,汇总的小程序资源有点繁杂,各种类型的小程序demo都有,大家可以选择自己想要的demo进行下载学习.这些微信小程序 ...
- Servlet的Cookie和Session机制
Servlet Cookies Cookies定义:Cookies是存储在客户端计算机上的文本文件,并保留了用户的各种跟踪信息. Cookies作用:会话保持,如完成用户的登录与状态保持 Cookie ...
- 学计算机excel就很好吗,零基础学习excel小技巧
零基础转行IT?如今IT行业如日中天,发展态势非常好,可谓是朝阳产业.因此,越来越多的人想进入IT行业,但苦于对it不了解,零基础不知IT深浅,那今天就和大家分享一下,零基础转行it该选择什么方向? ...
最新文章
- C++知识点62——模板实参推断与函数模板的特化
- Mycat 月分片方法 - pursuer.chen - 博客园
- 没有mssqlserver的协议_LoadRunner是什么 LoadRunner协议选择原则介绍【图文】
- linux守护进程原理及创建详解
- CSS 小结笔记之清除浮动
- [react] React组件的构造函数有什么作用?
- node mysql await_javascript – node.js async / await与MySQL一起使...
- [webpack-cli] Unable to load ‘@webpack-cli/serve‘ command
- join实例 oracle_oracle中join联合查询
- 【算法】剑指 Offer 53 - II. 0~n-1中缺失的数字
- hihocoder 1388 Periodic Signal
- Android应用程序键盘(Keyboard)消息处理机制分析(19)
- 关于近期卡巴斯基6.0授权文件被封的解决方案
- Vue后台管理系统项目总结
- 本学期课程教学要解决问题要点备忘录
- gamit数据处理—5.遇到的问题
- PySwitch - Python 环境快速切换
- 网易云音乐8.0版本背后的野心
- 新手使用CAD制图-需要了解的软件常识
- 一篇文章入门Spring