servlet学习笔记6——cookie的使用
2010-11-20 05:58
543 查看
Servlet第五讲
(一)Cookie的讲解和使用
服务器在客户端保存用户的信息
cookie
-----------------------------------
|名字(String) | 值(String) |
-----------------------------------
| | |
-----------------------------------
| | |
-----------------------------------
| | |
-----------------------------------
1.Cookie有点像一张表,分两列,一个是名字,一个是值,数据类
型都是String
2.如何创建一个Cookie(在服务器端创建的)
Cookie c=new Cookie(String name,String val);
3.如何将一个Cookie添加到客户端
response.addCookie(c);
4.如何读取cookie(从客户端读到服务器)
request.getCookies();
其他说明:
1.可以通过IE-工具-internet选项-隐私-高级来启用或是禁用cookie
2.由于cookie的信息是保存在客户端的因此安全性不高
3.cookie信息的生命周期可以在创建时设置(比如30s),从创建
那一刻起,就开始计时,到时该cookie信息就无效了(如果30秒后
)
4.cookie对b/s编程非常重要
应用方向:
1.保存用户名、密码,使其在一定时间内不用重新登录
2.记录用户访问网站的喜好
3.网站的个性化
(二)Cookie和Session的比较
1.存在位置
cookie保存在客户端,sesseion保存在服务器端
2.安全性
比较而言,cookie的安全性比sesseion要弱
3.网络传输量
cookie通过网络在客户端与服务器端传输。
而session保存在服务器端,不需要传输
4.生命周期(20分钟为例)
(1)cookie的生命周期是累计的,从创建时,就开始计时,20分
钟后cookie生命周期结束,cookie就无效
(2)sesseion的生命周期是间隔的,从创建时,开始计时如在20
分钟,没有访问过sesseion,那么session信息无效,如果在20分
钟内,比如19分钟时,访问过sesseion,那么,它的生命周期将重
新开始计算
(3)另外,关机会造成sesseion生命周期结束,但是对cookie没
有任何影响
参考示例:
CookieTest1:(创建cookie)
CookieTest2:(读取cookie)
CookieTest3:(删除cookie)
(一)Cookie的讲解和使用
服务器在客户端保存用户的信息
cookie
-----------------------------------
|名字(String) | 值(String) |
-----------------------------------
| | |
-----------------------------------
| | |
-----------------------------------
| | |
-----------------------------------
1.Cookie有点像一张表,分两列,一个是名字,一个是值,数据类
型都是String
2.如何创建一个Cookie(在服务器端创建的)
Cookie c=new Cookie(String name,String val);
3.如何将一个Cookie添加到客户端
response.addCookie(c);
4.如何读取cookie(从客户端读到服务器)
request.getCookies();
其他说明:
1.可以通过IE-工具-internet选项-隐私-高级来启用或是禁用cookie
2.由于cookie的信息是保存在客户端的因此安全性不高
3.cookie信息的生命周期可以在创建时设置(比如30s),从创建
那一刻起,就开始计时,到时该cookie信息就无效了(如果30秒后
)
4.cookie对b/s编程非常重要
应用方向:
1.保存用户名、密码,使其在一定时间内不用重新登录
2.记录用户访问网站的喜好
3.网站的个性化
(二)Cookie和Session的比较
1.存在位置
cookie保存在客户端,sesseion保存在服务器端
2.安全性
比较而言,cookie的安全性比sesseion要弱
3.网络传输量
cookie通过网络在客户端与服务器端传输。
而session保存在服务器端,不需要传输
4.生命周期(20分钟为例)
(1)cookie的生命周期是累计的,从创建时,就开始计时,20分
钟后cookie生命周期结束,cookie就无效
(2)sesseion的生命周期是间隔的,从创建时,开始计时如在20
分钟,没有访问过sesseion,那么session信息无效,如果在20分
钟内,比如19分钟时,访问过sesseion,那么,它的生命周期将重
新开始计算
(3)另外,关机会造成sesseion生命周期结束,但是对cookie没
有任何影响
参考示例:
CookieTest1:(创建cookie)
//创建cookie package com.tsinghua; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class CookieTest1 extends HttpServlet { public void process(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { try { res.setContentType("text/html;charset=UTF-8"); PrintWriter pw = res.getWriter(); // 当用户访问该servlet时,就将信息创建到该用户的cookie中 // 1.现在服务器端创建一个cookie Cookie myCookie=new Cookie("color1","red"); // 2.该cookie存在时间 // 如果你不设置存在时间,那么该cookie将不会保存 myCookie.setMaxAge(30);//按秒计算 // 3.将该cookie写会到客户端 res.addCookie(myCookie); pw.println("已经创建了cookie"); } catch (Exception ex) { ex.printStackTrace(); } } public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { process(req, res); } public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { process(req, res); } }
CookieTest2:(读取cookie)
//读取cookie package com.tsinghua; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class CookieTest2 extends HttpServlet { public void process(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { try { res.setContentType("text/html;charset=UTF-8"); PrintWriter pw = res.getWriter(); //从客户端得到所有的cookie信息 Cookie[] allCookies=req.getCookies(); int i=0; //如果allCookies不为空 if(allCookies!=null){ for(i=0;i<allCookies.length;i++){//从中取出cookie //依次取出 Cookie temp=allCookies[i]; if(temp.getName().equals("color1")){ //得到cookie的值 String val=temp.getValue(); pw.println("color1="+val); break; } } if(allCookies.length==i){ pw.println("cookie过期"); } }else{ pw.println("不存在color这个cookie/或是过期了"); } } catch (Exception ex) { ex.printStackTrace(); } } public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { process(req, res); } public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { process(req, res); } }
CookieTest3:(删除cookie)
//删除cookie package com.tsinghua; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class CookieTest3 extends HttpServlet { public void process(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { try { res.setContentType("text/html;charset=UTF-8"); PrintWriter pw = res.getWriter(); // 从客户端得到所有的cookie信息 Cookie[] allCookies = req.getCookies(); int i = 0; // 如果allCookies不为空 if (allCookies != null) { for (i = 0; i < allCookies.length; i++) {// 从中取出cookie // 依次取出 Cookie temp = allCookies[i]; if (temp.getName().equals("color1")) { // 将该cookie删除 temp.setMaxAge(0); pw.println("删除了color这个cookie"); break; } } } } catch (Exception ex) { ex.printStackTrace(); } } public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { process(req, res); } public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { process(req, res); } }
相关文章推荐
- java for Web学习笔记之Servlet的使用及注意事项
- 学习笔记(4)-----使用MyEclipse开发servlet
- 【2015/4/20】servlet学习笔记6--cookie与session+servletContext+操作文件
- OpenLayers学习笔记8——使用servlet从mysql获取数据并标注
- Servlet学习笔记_03_使用servlet编写一个简单的helloworld程序
- iOS学习笔记27-iOS中http请求使用cookie
- Servlet学习笔记(使用IDE开发Servlet)
- servlet学习笔记8——ServletContext的讲解和使用
- 【JSP学习笔记】使用Servlet实现网页验证码
- OpenLayers学习笔记9——使用servlet与jquery-ui实现自动提示输入
- 20160410servlet学习笔记session与cookie对比与分析
- Java 学习笔记20:深入Java的Cookie使用
- servlet学习笔记8——ServletContext的讲解和使用
- SpringMVC 学习笔记(三) 使用ServletAPI 和 实体 做为参数
- JSP Servlet学习笔记——使用fileupload上传文件
- php cookie使用方法学习笔记分享
- Session和Cookie学习笔记—Cookie使用
- JSP&Servlet学习笔记-第六章:使用JSP
- Servlet学习笔记---三个域对象的使用时机
- servlet学习笔记8——ServletContext的讲解和使用