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>,在此仅供学习参考之用. 一.会话 ...
随机推荐
- javascript中数组去重的4种方法
面试前端必须准备的一道问题:怎样去掉Javascript的Array的重复项.在最近面试中,百度.腾讯.盛大等都在面试里出过这个题目.这个问题看起来简单,但其实暗藏杀机. 考的不仅仅是实现这个功能,更 ...
- python 学习笔记12(序列常用方法总结)
http://www.cnblogs.com/vamei/archive/2012/07/19/2599940.html 多回想!!! 1. 序列(list,tuple,string) len(s) ...
- 70.Android开发知识点总结
转载:http://blog.csdn.net/worst_hacker/article/details/49867043 1.android之wifi开发 http://blog.csdn. ...
- 【BZOJ-3144】切糕 最小割-最大流
3144: [Hnoi2013]切糕 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1261 Solved: 700[Submit][Status] ...
- MongoDB安装与启动
我本人电脑是win8系统64位,下载64位的zip包,下载完成后解压缩到D:\MongoDB目录 创建数据库目录D:\MongoDB\data,接下来打开命令行窗口,切换到D:\MongoDB\bin ...
- 【bzoj1911】 Apio2010—特别行动队
http://www.lydsy.com/JudgeOnline/problem.php?id=1911 (题目链接) 题意 给出一个序列,将序列分成连续的几段,每段的价值为a*s*s+b*s+c,其 ...
- JQuery获取子节点的第一个元素
$.children()//全部子节点 $.children(':first')//子节点的第一个
- GridView控件RowDataBound事件的一个实例
实现点击两个按钮,跳转到同一个界面,HyperLink显示不同的东西,主要代码段如下 前台代码: <asp:TemplateField HeaderText="操作"> ...
- 使用LaTeX编辑数学公式
首先在博客园的页首html里添加以下代码: <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex ...
- POJ2185Milking Grid(最小覆盖子串 + 二维KMP)
题意: 一个r*c的矩形,求一个子矩形通过平移复制能覆盖整个矩形 关于一个字符串的最小覆盖子串可以看这里http://blog.csdn.net/fjsd155/article/details/686 ...