Servlet学习:Cookie练习

原创 2012年03月28日 00:55:47
什么是cookie?

服务器在客户端保存用户的信息,比如登录名、密码……就是cookie。

这些信息就像是小甜饼一样,数据量并不大,服务器端在需要的时候可以从客户端读取。

cookie可以用来做什么?

1.保存用户名、密码,在一定时间不用重新登录
2.记录用户访问网站的喜好,比如有无背景音乐、网页的背景色是什么
3.网站的个性化,比如定制网站的服务、内容
cookie使用:

1.cookie有点像一张表,分两列,一个是名字,一个是值,数据类型都是String
2.如何创建一个cookie(在服务器端创建的)
Cookie c=new Cookie(String name, String val);
3.如何将一个cookie添加到客户端
response.addCookie(c);
4。如何读取cookie(从客户端读到服务器)
request.getCookie();

Cookie练习1:创建Cookie

import javax.servlet.http.*;
import java.io.*;

public class Cookie1 extends HttpServlet{

	
	public void doGet(HttpServletRequest req,HttpServletResponse res){
		
		try {
			
			res.setContentType("text/html;charset=gbk");
			PrintWriter pw=res.getWriter();
		    //当用户访问该servlet时, 就将信息创建到该用户的cookie中
  
                      //1. 先在服务器端创建一个cookie
			Cookie myCookie=new Cookie("color1","red");
			
	             //2. 该cookie存在的时间	
       			myCookie.setMaxAge(30);
                      /如果你不设置存在时间,那么该cookie将不会保存
   
                     //3. 将该cookie写回到客户端		
    			res.addCookie(myCookie);
			
			pw.println("creat cookie");
	    }
	    catch (Exception ex) {
	    	
	    	ex.printStackTrace();
	    }				
	}
}

执行结果:

查找Cookies文件夹,确定是否将cookie写回到客户端。
Cookies文件夹位置为:C:\Documents and Settings\Administrator\Cookies
administrator为你的windows用户名

如果没有看到Cookies文件夹,则需要显示隐藏的文件夹

选择工具→文件夹选项→查看    将隐藏受保护的操作系统文件前面的复选框去掉


就可以看见Cookies文件夹了,找到生成的对应cookie

 练习2、读取Cookie

import javax.servlet.http.*;
import java.io.*;

public class Cookie2 extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res){
   try {
	 PrintWriter pw=res.getWriter();
             //从客户端得到所有cookie信息
              Cookie[] allCookies=req.getCookies();
                //如果客户端存在cookie信息
		if(allCookies!=null)
		  {
                      //遍历所有cookie信息,找到刚刚创建的cookie 
		   for(i=0;i<allCookies.length;i++)
		     { 
		   	Cookie temp=allCookies[i];
		       if(temp.getName().equals("color1"))
		   	{
		             String val=temp.getValue();
		   	    pw.println("color1="+val);
		   	    break;
		   	}
		      }
                     //如果遍历完也没有找到,则cookie过期啦
		   if(allCookies.length==i)
		       {
		   	 pw.println("cookie time out");
		       }
		   }
		 else   //allCookies==null
		  {
		     pw.println("Don't have cookies");
		  }
	   }
	    catch (Exception ex) {
	    	
	    	ex.printStackTrace();
	    }				
	}
}

执行结果:

刷新练习1的url,产生cookie,输入练习2的url,产生结果如图所示:

30秒cookie过期之后刷新页面,产生结果如图所示:

3、删除Cookie

import javax.servlet.http.*;
import java.io.*;

public class Cookie3 extends HttpServlet{

	
	public void doGet(HttpServletRequest req,HttpServletResponse res){
		
		try {
			
		      res.setContentType("text/html;charset=gbk");
		      PrintWriter pw=res.getWriter();
		      Cookie[] allCookies=req.getCookies();
		      int i=0;
		      if(allCookies!=null)
		      {
		      	for(i=0;i<allCookies.length;i++)
		      	{    Cookie temp=allCookies[i];
		   	    if(temp.getName().equals("color1"))
		   	      {
		   		    temp.setMaxAge(0);  //为正数表示cookie保存时间,为0表示删除cookie,为负数表示不保存cookie
		      		    pw.println("delete cookie");
		      		    break;
		   	      }
		      	} 
	     	      } 
	             else
		     {
		   	pw.println("Don't have cookies");
		     }
		}
  		catch (Exception ex) {
	    	ex.printStackTrace();
	    }			
	}
}

执行结果:

Cookie的其他说明:

1.可以通过IE——工具——internet选项——隐私——高级来启用或是禁用cookie

2.由于cookie的信息是保存在客户端的,因此安全性不高

3.cookie信息的生命周期可以在创建时设置(比如30s),从创建那一时刻起,就开始计时,到时该cookie的信息就无效了



版权声明:本文为博主原创文章,未经博主允许不得转载。

Servlet学习--练习示例总结

醉了醉了。。本来想测试下Servlet生命周期的,然后调了好久的错误,还是没成功,不知道为什么不能这样做 贴上代码: import java.io.IOException; import ...
  • k183000860
  • k183000860
  • 2015年08月02日 11:02
  • 777

Cookie练习

很长时间没用过cookie了,前段时间做项目,出了一个小问题,重复加载的问题,在解决的过程中,朋友建议我可以每次刷新页面再进行操作。这里就用cookie做一个简单的例子。 Cookie...
  • Bright2017
  • Bright2017
  • 2017年04月08日 19:56
  • 280

Servlet 清除Cookie 方法

 一、删除已知名称的Cookie(方案:重新建立同名立即删除类型的Cookie) Cookie newCookie=new Cookie(“username”,null); //假如要删除...
  • zhouzhiwengang
  • zhouzhiwengang
  • 2014年02月27日 14:07
  • 1627

Java Servlet学习笔记(六)Servlet Cookies处理

Servlet Cookies 处理 Cookies 是存储在客户端计算机上的文本文件,并保留了各种跟踪信息。Java Servlet 显然支持 HTTP Cookies。 识别返回用户包括三...
  • chris_mao
  • chris_mao
  • 2015年05月28日 22:37
  • 3600

Servlet的Cookie与Seesion的介绍

什么是Cookie? Cookie是服务器在本地机器上存储的小段文本,它是一个简单的字符串形式的键值对。 网络服务器用HTTP头向客户端发送cookie, (一般情况下Cookie是由服务端生成的,...
  • qq_33642117
  • qq_33642117
  • 2016年07月07日 21:44
  • 536

利用servlet创建Cookie

1。什么是 Cookie?Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。用户每次访问站点时,Web 应用程序都可以读取 Cookie 包含的信息。假设在用户请...
  • wwwwsoe
  • wwwwsoe
  • 2007年06月02日 12:51
  • 3744

Servlet——Cookie 和 Session

一、会话           会话可简单的理解为:用户的打开一个浏览器,点击多个超链接访问 Web 服务器中的多个资源,然后关闭浏览器的过程,称为会话。               1、服...
  • u010940949
  • u010940949
  • 2013年12月25日 09:09
  • 1399

Servlet-Cookie的使用与删除

1、Cookie的使用/** * @author CSDN_LQR * @TODO * * 一、 Cookie默认是会话级Cookie,即当浏览器关闭时自动删除 * * ...
  • CSDN_LQR
  • CSDN_LQR
  • 2016年10月16日 16:57
  • 2094

Servlet之cookie和session简介及其作用

一、cookie和session简介1.浏览器和服务器是多对一的关系2.业务:登录时记录账号,后续的页面上显示此账号3.使用如下对象存储账号都不行 request:多个请求之间共用账号,不能用requ...
  • qq_27853161
  • qq_27853161
  • 2016年12月21日 17:20
  • 397

Servlet实现Cookie的创建,读取,删除

(1)如何创建cookie案例 package com.tsinghua; import javax.servlet.http.*; import java.io.*; public clas...
  • u010870518
  • u010870518
  • 2014年08月31日 15:25
  • 6823
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Servlet学习:Cookie练习
举报原因:
原因补充:

(最多只允许输入30个字)