1.servlet的会话机制cookie
会话:用户开浏览器访问某个网站,只要不关闭浏览器,不管该用户点击多少个超链接,访问多少资源,直到用户关闭浏览器,整个过程称为一次会话
cookie会话:
1.记录用户上次登录的时间
2.浏览商品的历史
3.保存用户名和密码

cookie的创建
//createcookie.java
//创建cookie(api)
Cookie cookie=new Cookie("name","cookietest");
//设置cookie的生命周期
cookie.setMaxAge(3600);
//把cookie信息写回给浏览器
response.addCookie(cookie);
cookie的读取
//readcookie.java
//读取所有cookie信息
Cookie cookies[]=request.getCookies();
//遍历cookie
for(int i=0;i<cookies.length;i++){
Cookie cookie=cookies[i];
out.println("cookie 名字= "+cookie.getName());//cookie只能放字符串 }

案例:登录显示上次登录的时间
//获得cookie记录上次登录时间
private String getLasttime(HttpServletRequest request,
HttpServletResponse response) {
//先获取cookie
//保存上次登陆时间的cookie “2012-11-13 12:36:22”
Cookie []cookies=request.getCookies();
// 首次登录
boolean b=false;
String returnName="";
//获取时间,用于更新cookie
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-MM-DD HH:mm:ss");
String nowTime=simpleDateFormat.format(new java.util.Date());
//遍历cookie找到需要的值
if(cookies!=null)
{
for(Cookie cookie:cookies)
{
//取名字
String name=cookie.getName();
if("lasttime".equals(name))
{
returnName=cookie.getValue();
//更新cookie 的时间
Cookie mycookie = new Cookie("lasttime",nowTime);
mycookie.setMaxAge(7*24*3600);//保存一周
response.addCookie(mycookie);
b=true;
break;
} }
}
if(!b)//第一次登陆的设置
{
Cookie mycookie=new Cookie("lasttime",nowTime);
mycookie.setMaxAge(7*24*3600);
response.addCookie(mycookie);
returnName=null;
}
return returnName;
}
保存用户的名字的案例:
登录界面
String username="";
Cookie cookies[]=request.getCookies();
if(cookies!=null){
for(Cookie cookie:cookies){
if(cookie.getName().equals("username")){
username=cookie.getValue();
}
}
}
out.println("用户名:<input type='text' name='username' value='"+username+"'/><br/>");
out.println("密 码:<input type='password' name='password'/><br/>");
out.println("<input type='checkbox' name='iskeepinfo' value='keep'/>在此电脑上保存用户名<br/>");
提交后台的servlet
String val=request.getParameter("iskeepinfo");
if(val!=null&&val.equals("keep")){
//保存
//创建cookie并保存登录用户的机器上
Cookie cookie=new Cookie("username",username);
cookie.setMaxAge(7*2*24*3600);
//会写
response.addCookie(cookie);
}
String val=java.net.URLEncoder.encode("顺平","utf-8");
Cookie cookie=new Cookie("name",val);
取出
String val=java.net.URLDecoder.decode("cookie.getValue()","utf-8");
out.println("name="+val);
1.servlet的会话机制cookie的更多相关文章
- Django之会话机制cookie、session使用
login视图函数: def login(request): if request.method == 'POST': username = request.POST.get('username') ...
- 一,PHP会话机制---cookie
1, 什么是会话 会话可简单理解为:用户打开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 2, cookie技术 cookie(小甜饼)是客户端技 ...
- Servlet的会话机制?
因为http协议是无状态协议,又称为一次性连接,所以webapp必须有一种机制 能够记住用户的一系列操作,并且唯一标示一个用户. Cookie: 又称为小饼干,实际就是使用一个短文本保存用户信息, 在 ...
- 2.servlet的会话机制session
session的说明: 1.session是服务端技术,存放在服务器 2.一个用户浏览器对应一个session域对象,一对一的对应关系 3.session的默认生命周期是30min,可以通过web.x ...
- Servlet基础知识(三)—— 会话机制Session,Session和Cookie的异同
Servlet会话机制: Http是一种无状态协议,它是无记忆的.也就是说,服务器不会保存用户的任何信息,当同一用户再次去访问时,服务器是不认识你的,它还是会建立新的连接. 但有时候我们需要服务器保留 ...
- Cookie&Seesion会话 共享数据 工作流程 持久化 Servlet三个作用域 会话机制
Day37 Cookie&Seesion会话 1.1.1 什么是cookie 当用户通过浏览器访问Web服务器时,服务器会给客户端发送一些信息,这些信息都保存在Cookie中.这样,当该浏览器 ...
- Java Web(三) 会话机制,Cookie和Session详解
很大一部分应该知道什么是会话机制,也能说的出几句,我也大概了解一点,但是学了之后几天不用,立马忘的一干二净,原因可能是没能好好理解这两种会话机制,所以会一直遗忘,一直重新回过头来学习它,今天好好把他总 ...
- Java Web(三) 会话机制,Cookie和Session详解(转载)
https://www.cnblogs.com/whgk/p/6422391.html 很大一部分应该知道什么是会话机制,也能说的出几句,我也大概了解一点,但是学了之后几天不用,立马忘的一干二净,原因 ...
- web开发(三) 会话机制,Cookie和Session详解
在网上看见一篇不错的文章,写的详细. 以下内容引用那篇博文.转载于<http://www.cnblogs.com/whgk/p/6422391.html>,在此仅供学习参考之用. 一.会话 ...
随机推荐
- C# for循环及循环嵌套
格式(for循环四要素:初始条件.循环条件.循环体.状态改变) for (int i=1<初始条件>;i<=n<循环条件>;i++<状态改变>) { < ...
- fiddler使用教程
转载地址:写得很不错的fildder教程 http://kb.cnblogs.com/page/130367/ Fiddler的基本介绍 Fiddler的官方网站: www.fiddler2.c ...
- 深入理解JVM内幕:从基本结构到Java 7新特性
转自:http://www.importnew.com/1486.html 每个Java开发者都知道Java字节码是执行在JRE((Java Runtime Environment Java运行时环境 ...
- Xcode 的ARC转化功能以及跟非ARC共存方法
1.ARC工程跟非ARC文件的共存方法: 在工程中选择 Build Phases 然后选择Compile Sources 里面,找到需要共存的非ARC文件,然后按Enter键,在弹出的窗口中填入:-f ...
- Java多线程与并发库高级应用-同步集合
ArrayBlockingQueue LinkedBlockingQueue 数组是连续的一片内存 链表是不连续的一片内存 传统方式下用Collections工具类提供的synchronizedCo ...
- Linux学习路线
为什么要学习Linux? 为什么学Linux,每个人都有自己的理由: Linux是免费的不用花一分钱,能够节约大笔的成本: Linux是开源的,你可以根据自已的需要修改源代码: Linux是开放的,有 ...
- Bzoj2683 简单题
Time Limit: 50 Sec Memory Limit: 128 MBSubmit: 1071 Solved: 428 Description 你有一个N*N的棋盘,每个格子内有一个整数, ...
- C#的委托和事件(delegate)
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Dele ...
- Alpha版本十天冲刺——Day 7
站立式会议 祝曹鑫杰和常松童鞋生日快乐!短短几天冲刺,就迎来了三位队员的生日,希望也给我们的Alpha版本带来好运,加油! 会议总结 队员 今天完成 遇到的问题 明天要做 感想 鲍亮 上传图片接口 无 ...
- WPF元素可视化效果
在WPF中设置元素的可视化效果主要用到BlurEffect类和DropShadowEffect类.(目前只学到这两个,哈哈) 1.BlurEffect类 命名空间: System.Windows.Me ...