`
xiaotao.2010
  • 浏览: 216956 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Cookie-学习笔记

阅读更多
1、Cookies
   对Cookies的理解:
   简单点说 Cookies 就是数据传递的一种方式,目的是保存数据到客户端。

   Creates a cookie, a small amount of information sent by a servlet to a Web browser, saved by the browser, and later sent back to the server. A cookie's value can uniquely identify a client, so cookies are commonly used for session management.
   A cookie has a name, a single value, and optional attributes such as a comment, path and domain qualifiers, a maximum age, and a version number. Some Web browsers have bugs in how they handle the optional attributes, so use them sparingly to improve the interoperability of your servlets.

2、Cookies保存值的方式
   Cookies 保存值是以键值对的形式来保存,Cookie(String name, String value)
   通常使用 getName() 和 getValue() 来取出Cookies中的键值对信息。

3、在HttpServletRequest 获得Cookies 对象
   在HttpServletRequest.getCookies() 方法得到的是 Cookies[],需要遍历取到Cookies对象。

4、描述cookie和session的作用,区别和各自的应用范围,session工作原理?
Cookie:主要用在保存客户端,其值在客户端与服务端之间传送,不安全,存储数据量有限;
Session:主要在保留服务端,每个session在服务端都一个id做为标识,存储数据量大,安全性高,占用服务端的内存资源。



重点:
    1、servlet 向用户浏览器发送Cookies,客户端注入Cookies     HttpServletResponse.addCookie(javax.servlet.http.Cookie)
    2、浏览器返回一个Cookies 向servlet ,服务端读取Cookies
HttpServletRequest.getCookies()       
    3、API中强调使用Cookies时存在Bugs 需小心使用。

代码重点:
      Cookie cookie = new Cookie();
      cookie.setMaxAge(60);	//设置最大时间
      cookie.setValue(null);
      response.addCookie(cookie); //这句是重点,之前全部是在服务器端对Cookie的操作,这句的意思是将以上对该Cookie的操作返回给客户端,这样对Cookie的操作才真正有意义。



代码实例:

import java.io.IOException;
import java.io.PrintWriter;

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

public class TestSetCookies extends HttpServlet {
	// 设置Cookie

	// 1:服务器可以向客户端写内容
	// 2:只能是文本内容
	// 3:客户端可以阻止服务器写入
	// 4:只能拿自己webapp写入的东西
	// 5:Cookie分为两种,第一种:属于窗口/子窗口(放在内存中的),第二种:属于文本(有生命周期的)
	// 6:一个servlet/jsp设置的cookies能够被同一个路径下面或者子路径下面的servlet/jsp读到 (路径 = URL)(路径 !=
	// 真实文件路径)

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		req.setCharacterEncoding("GBK");
		resp.setCharacterEncoding("GBK");
		// Cookie(String name, String value)
		for (int i = 0; i < 10; i++) {
			Cookie cookie = new Cookie("NO." + i + "Cookies", i + " Cookies");
			cookie.setMaxAge(60);	//设置最大时间
			resp.addCookie(cookie); //加入Cookies
			
		}
		PrintWriter out = resp.getWriter();
		out.println("<html><head><title>设置Cookie</title></head>"
				+ "<BODY>\n" 
				+ "<H1 ALIGN=\"CENTER\">"
				+ "设置Cookie" + "</H1>\n"
				+ "Cookie\n"
				+ "<A HREF=\"TestShowCookies\">\n"
				+ "查看</A>.\n"
				+ "</BODY></HTML>");
	}	
}


                                      
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.*;
import javax.servlet.http.*;


public class TestShowCookies extends HttpServlet {
	//读取客户端的Cookie
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		req.setCharacterEncoding("GBK");
		resp.setCharacterEncoding("GBK");
		Cookie[] cookies = req.getCookies();
		
		PrintWriter out = resp.getWriter();
		for(int i=0;i<cookies.length;i++){
			Cookie cookie = cookies[i];
			out.print("第"+i+"个 cookis Name:"+cookie.getName());
			out.println("Value :"+cookie.getValue());
		}	
	}
}



response.add(cookies);//这是是向客户机写入Cookies
分享到:
评论
1 楼 xiaotao.2010 2011-04-16  
    

相关推荐

    j2ee学习笔记-j2ee学习笔记

    **J2EE学习笔记概述** J2EE(Java 2 Platform, Enterprise Edition)是一个由Sun Microsystems(现已被Oracle收购)开发的平台,主要用于构建企业级的分布式应用系统。它提供了服务器端组件模型、服务和API,支持...

    Web安全学习笔记-Web-Sec Documentation

    Web安全学习笔记——Web-Sec Documentation是一份详细的知识库,旨在帮助读者理解并掌握Web安全相关的理论和技术。文档首先从Web技术的演化、网络攻防技术的发展以及网络安全观的演变三个方面进行阐述,让读者对Web...

    Cookie、Session学习笔记

    这篇学习笔记将深入探讨它们的工作原理、使用场景以及优缺点。 **Cookie** Cookie是一种在客户端(用户的浏览器)和服务器之间传递信息的技术。服务器在响应中设置Cookie,浏览器在后续的请求中携带Cookie返回。...

    yolo开发avaWeb-mas笔记

    【描述】"yolo开发avaWeb-mas笔记yolo开发avaWeb-mas笔记" 可能是由于输入重复,但可以推断出这是一份详细记录了开发者在使用Yolo理念进行Java Web项目开发时所遇到的问题、解决方案、最佳实践和学习心得的文档。...

    学习cookie的笔记和总结

    ### 学习cookie的笔记和总结 #### 一、什么是Cookie? Cookie是一种小型的数据文件,由服务器发送到用户的浏览器,并存储在用户计算机上的一种机制。它主要用于保存用户的偏好设置、登录状态等信息,以便用户再次...

    深入剖析Express cookie-parser中间件实现示例

    文章导读 cookie-parser 是Express的中间件,用来实现...文本同步收录于GitHub主题系列 《Nodejs学习笔记》 入门例子:cookie设置与解析 先从最简单的例子来看下 cookie-parser 的使用,这里采用默认配置。 cookie设置

    ASP.NET学习笔记

    本学习笔记将深入探讨ASP.NET的核心概念、开发工具、语法特性以及常见应用场景。 首先,ASP.NET的核心组成部分包括ASP.NET Web Forms、ASP.NET MVC、ASP.NET Web Pages和ASP.NET Core。Web Forms提供了事件驱动的...

    eclipse-java学习笔记

    8. **Cookie**:Cookie用于在客户端存储用户信息,如登录状态,实现网站的个性化设置。 9. **继承与接口**:`extends`关键字用于类的继承,而`implements`用于实现接口。接口不包含方法的实现,只定义方法签名,...

    php的学习笔记-php的学习笔记

    从给定的文件信息中,我们可以提炼出一系列与PHP学习相关的知识点,涵盖了基本的调试技巧、错误处理策略、变量管理、以及PHP的工作流程等。以下是对这些知识点的详细阐述: ### PHP调试技巧 #### 输出调试 1. **...

    ASP.NET4学习笔记

    这份"ASP.NET4学习笔记"包含了多个部分,旨在帮助学习者深入理解该技术的核心概念和实际应用。 1. **基础概念**:笔记可能首先介绍了ASP.NET 4的基本架构和工作原理,包括页面生命周期、控件事件模型以及服务器控件...

    学习笔记文档

    ### Java Web 学习笔记:Servlet 的核心概念与应用 #### 一、Servlet 概述 Servlet 是 Java Web 开发中的重要组成部分,主要用于处理客户端发送到服务器端的 HTTP 请求,并生成响应结果返回给客户端。通过学习 ...

    ASP.NET学习笔记(我们一起学习ASP.NET)

    ### ASP.NET 学习笔记概览 本学习笔记主要记录了作者在学习ASP.NET过程中的关键知识点与实践心得,旨在帮助初学者更好地理解和掌握ASP.NET的基本概念和技术要点。 ### 1. 关于页面关闭与PostBack - **页面关闭**:...

    JSP-Servlet学习笔记第2版.pdf

    由于直接学习笔记的内容没有给出具体的实例代码和详细解释,所以这里只提供了理论层面的知识点。如果需要学习具体实现,可以寻找相关的教程和项目实践来加深理解。同时需要注意的是,由于JSP/Servlet技术相对老旧,...

    林学良Jsp&Servlet学习笔记

    **林学良Jsp&Servlet学习笔记**: 这份学习资料可能是对JSP和Servlet基础知识的系统性讲解,涵盖了上述概念和原理,适合初学者入门。通过阅读这份笔记,你可以了解JSP和Servlet的基本语法、生命周期、以及如何将它们...

    ASP实例开发源码-在线笔记 v1.0.zip

    此外,还可以使用Cookie来持久化用户的登录状态。 2. **数据库交互**:ASP可以与SQL Server、Access等数据库进行交互,以存储和检索用户笔记。通过ADO(ActiveX Data Objects)技术,开发者可以编写SQL查询语句,...

    JAVA-JSP学习笔记.doc

    【JAVA-JSP学习笔记】 1. **JSP中去除字符串空格**:在JSP中,我们可以使用`String.trim()`方法来去除字符串两端的空格,如果需要去除所有空格,可以使用`String.replaceAll("\\s", "")`。 2. **JSP页面间参数传递...

    PHP语言基础学习笔记-php函数大全笔记

    ### PHP语言基础学习笔记-php函数大全笔记 #### 一、PHP概述与基本概念 - **PHP简介**: - PHP(Hypertext Preprocessor,原名Personal Home Page)是一种广泛使用的开源服务器端脚本语言,特别适合Web开发,并且...

    node.js cookie-parser 中间件介绍

    之前加入了一个学习笔记本群,通过学习笔记来分享学习成果。也在这里发一份吧。 当我们在写web的时候,难免会要使用到cookie,由于node.js有了express这个web框架,我们就可以方便地去建站。在使用express时,经常会...

    老杜Servlet笔记.zip

    2020-5-11 Servlet学习---Cookie 2020-5-11 Servlet中的路径 2020-5-11 Servlet学习---Session 2020-5-17 监听器学习 2020-5-17 IDEA中的Maven的简单使用 2020-5-18 JavaWeb学习 2020-5-19 JavaWeb学习 2020-5-21 ...

    httpservletRequest的学习笔记

    【httpservletRequest的学习笔记】 在Java Web开发中,HttpServletRequest接口是Servlet API的核心组成部分,它用于封装客户端发送到服务器的HTTP请求。理解HttpServletRequest的工作原理对于任何Servlet开发者来说...

Global site tag (gtag.js) - Google Analytics