Servlet第六课:Cookie的使用

目标规划:

通过这一节课,我们可以懂得如何使用Cookie,以及如何获取Cookie中的内容。

Cookie的详细概述。

1. Cookie 是保存在客户端的一个“键-值”对,用来标识用户的一些信息。

2. Cookie的应用

–在电子商务会话中标识用户

–对站点进行定制

–定向广告

3. 调用Cookie的构造函数,给出cookie的名称和cookie的值,二者都是字符串

Cookie c = new Cookie("userID", "a1234");

4. 如果要告诉浏览器将cookie存储到磁盘上,而非仅仅保存在内存中,使用setMaxAge (参数为秒数)

c.setMaxAge(60*60*24*7); // One week

5. 将Cookie放入到HTTP响应

response.addCookie(c);

6. 调用request.getCookies 获得这会得到Cookie对象组成的数组,在这个数组中循环,调用每个对象的getName,直到找到想要的cookie为止。

7.实例,创建cookie

我们首先创建一个Cookie信息:

核心代码:

Cookie c = new Cookie("goxuexi", "www.goxuexi.com");
		c.setMaxAge(60*60*24*7);
		response.addCookie(c);

全部代码:TestCookieServlet.java

package com.goxuexi.demo;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class TestCookieServlet
 */
@WebServlet("/TestCookieServlet")
public class TestCookieServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public TestCookieServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		Cookie c = new Cookie("goxuexi", "www.goxuexi.com");
		c.setMaxAge(60*60*24*7);
		response.addCookie(c);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

02.写一个获取Cookie的代码:

TestCookie.java

核心代码:

Cookie[] cs =  request.getCookies();
		for (Cookie c : cs) {
			System.out.println(c.getName()+":"+c.getValue());
		}

全部代码:

package com.goxuexi.demo;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class TestCookie
 */
@WebServlet("/TestCookie")
public class TestCookie extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public TestCookie() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		Cookie[] cs =  request.getCookies();
               if(cs != null)
                for (Cookie c : cs) {
			System.out.println(c.getName()+":"+c.getValue());
		}
                 }
                   }

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

8.实例-使用cookie检测初访者

//使用cookie检测初访者
	String result=null;
        boolean newUser = true;
        Cookie[] cookies = request.getCookies();
        if(cookies!=null){
                for(int i=0;i<cookies.length;i++){
                        Cookie c = cookies[i];
                        if((c.getName().equals("repeatVisitor"))&&(c.getValue().equals("yes"))){
                        	newUser = false;
                            break;
                        }
                }
        } 

	if (newUser) {
		Cookie returnVisitorCookie = new Cookie("repeatVisitor", "yes");
		returnVisitorCookie.setMaxAge(60 * 60 * 24 * 365);
		response.addCookie(returnVisitorCookie);
		result = "Welcome Aboard";
	} else {
		result = "Welcome Back";
	}
	System.out.println(result);

Servlet第六课:Cookie的使用

时间: 2024-08-18 16:04:21

Servlet第六课:Cookie的使用的相关文章

Servlet 第六课: Session的使用

课程目标: 通过这节课,我们能够学会加入session,学会调用session,以及大概懂得session存在的情况. 课程具体: 1.Session仅仅是存在于浏览器.比方我们打开浏览器获得我们所须要的session,我们在同一个浏览器再打开,我们所须要的这个session是还存在的. 可是假设我们换用其它的浏览器或者直接关闭浏览器,那么这个session就会过期. 2.Session –Session 是用来跟踪用户当前状态的一种机制,是针对浏览器和server的一对一关系. –Sessio

Java web基础总结六之—— Cookie与Session

Java web基础总结六之-- Cookie与Session 当我们在使用浏览器与服务器进行会话的过程中,就必然会产生一些数据.这个时候就需要对数据进行保存.比如常见的购物网站购物车信息的保存.保存客户端与服务器会话数据的两种技术是Cookie与Session. 一.Cookie 1.什么是Cookie? Cookie是保存在客户端的,以name,value的形式保存.当用户使用浏览器访问服务器产生数据时,服务器程序把每个用户的数据以cookie的形式写给用户各自的浏览器.当用户使用浏览器再去

第六课 简易网页制作展示

<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <link href="test1 html.css" rel="stylesheet" type="text/css" /> </head>

【C语言探索之旅】 第二部分第六课:创建你自己的变量类型

0 内容简介 1.课程大纲 2.第二部分第六课: 创建你自己的变量类型 3.第二部分第七课预告: 文件读写 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语言编程基础知识 什么是编程? 工欲善其事,必先利其器 你的第一个程序 变量的世界 运算那点事 条件表达式 循环语句 实战:第一个C语言小游戏 函数 练习题 习作:完善第一个C语言小游戏 C语言高级技术 模块化编程 进击的指针,C语言王牌 数组 字符串 预处理 创建你自己的变量

BeagleBone Black板第六课:C++编程控制GPIO基础

BBB板第六课:C++编程控制GPIO基础 在一上课我们通过Shell脚本编程实现了对GPIO端口的简单输出控制,实现对两个LED指示灯的交替点亮和关闭,接下来的一两节课,将通过C++程序来实现Shell脚本的功能.为了实现对应的程序控制,我查阅了好多资料,测试过程中发觉网上的一些程序套用过来总是出现各种各样的编译错误,压根就控制不了BBB板,不知是我的BBB板太新,还是以前的程序太旧.最后还是从头开始,重新研究BBB板的文件系统,找出头文件,找出所有相关的函数,终于实现GPIO的C++程序控制

Servlet中会话之cookie(7)

1.(1).用户输出URL地址,有效访问某个网站,在该网站上的一系列有效操作,随后关闭浏览器的整个过程,叫一次会话 (2).会话主要解决服务端如何保存每个客户端对应的私有信息. (3).会话主要有二种: a>Cookie技术[客户端技术] b>Session技术 两者的不同就是:session会随着浏览器关闭而失效,但cookie会一直存放在客户端机器上,除非超出Cookie的生命周期. 2.Cookie技术    (1)Cookie是客户端技术,服务器把每个用户的数据以cookie的形式写给

Python爬虫入门六之Cookie的使用

大家好哈,上一节我们研究了一下爬虫的异常处理问题,那么接下来我们一起来看一下Cookie的使用. 为什么要使用Cookie呢? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密) 比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的.那么我们可以利用Urllib2库保存我们登录的Cookie,然后再抓取其他页面就达到目的了. 在此之前呢,我们必须先介绍一个opener的概念. 1.Opener 当你获取一个

Spark3000门徒第六课精通Spark集群搭建总结

今晚听了王家林老师的第六课精通Spark集群搭建和测试,课后作业是:搭建自己的spark环境并成功运行pi,我的总结如下: 1 硬件环境: 至少8GB内存,推荐金士顿内存,虚拟机推荐Ubuntu kylin版本,可以安装各种办公软件包括搜狗输入法.上网方式:Nat,root权限登录,避免权限问题 2.软件环境: RedHat 6.4  spark 1.6.0   hadoop 2.6.0   scala 2.11.8 3 /etc/hosts ip-hostname对应关系 spark.even

NeHe OpenGL教程 第三十六课:从渲染到纹理

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第三十六课:从渲染到纹理 放射模糊和渲染到纹理: 如何实现放射状的滤镜效果呢,看上去很难,其实很简单.把渲染得图像作为纹理提取出来,在利用OpenGL本身自带的纹理过滤,就能实现这种效果,不信,你试试. 嗨,我是Dario Corn