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学习:Cookie练习

什么是cookie? 服务器在客户端保存用户的信息,比如登录名、密码……就是cookie。 这些信息就像是小甜饼一样,数据量并不大,服务器端在需要的时候可以从客户端读取。 cookie可以用来做...
  • lissdy
  • lissdy
  • 2012-03-28 00:55
  • 1654

Servlet学习之cookie

这次主要说明下cookie的用法,主要包括: 什么是cookie,有什么用途怎么使用cookie关于cookie的一些理解 1.cookie,英文意思小饼干,在Servlet中其实是一个很小的缓存...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

Servlet学习(五)Cookie

Cookie需求: Http协议无连接性:数据传输完毕后,马上就会断开连接,不保存数据和状态。 例如:访问了购物页面,选定物品后,跳转到另一个页面结账,却无法获得前一个页面的物品数据记录了,因为c...

Qt纯代码的对话框---信号与槽、布局

对信号与槽的理解:信号就好理解,槽就类似与事件。信号和槽先连接起来,一旦有信号发出,该信号就会触发对应的槽(也就是事件!!) 一个信号可以对应多个槽,槽会一个个被调用,但是槽被调用的顺序是随机的。。...

Servlet学习笔记(六):Cookie

HTTP协议是无状态的的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。Cookie和Seesion,就是这样的机制,可以弥补HTTP协议的无状态的不足。 Coo...

Servlet学习之Cookie详解

Cookie 是存储在客户端计算机上的文本文件,并保留了各种跟踪信息。 Java Servlet 显然支持 HTTP Cookie。 识别返回用户包括三个步骤: 1,服务器脚本向浏览器发送一组 Coo...

练习:一副牌

在学习《Java语言程序设计·基础篇》一维数组这一章的时候,看到书上的一道例题。过程很简单,但是对我有启发,特此记录。 问题:编写一个程序,从一副52张牌中随机调出4张牌。 以上问题有两个待解决的...

Cookie练习

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

【复习】servlet之cookie

1,cookie 是存储计算机客户端上的文件,还有保留了跟踪文件信息 2,cookie 在servlet中的使用:首页客户端脚本向浏览器发送一组cookie,浏览器会把这组cookie保存在本地,当...

jsp+servlet 练习

刚接触javaWeb,自己练习尝试用JSP和Servlet做的小练习,就当做我每天的总结和练习吧,这是第一篇,希望能坚持下来!
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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