J2EE中Servlet操作cookie

一、基本概念
cookie是web服务器通过浏览器保存在www用户端硬盘上的一个文本文件,这个文件中包含了文本信息文本信息的内容是以“名/值”对的形式进行储存。可以让web开发者通过程序读写这个文本文件在Windows XP中保存Cookie的目录是:C:\Documents and Settings\用户名\Cookies。

Cookie的作用是解决浏览器用户与web服务器之间无状态通信。

二、注意点
cookie的大小和数量是有限制的。
cookie在个人硬盘上所保存的文本信息是以明文格式进行保存的,没有任何的加密措施。
浏览器可以设定不使用cookie。

 
三、代码

cookiesInput.html
<html>
<head>
<title>cookie input page</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
请输入用户名<br>
<form name="form1" action="SetCookiesServlet"  method="post" >
<table border="0">
<tr><td>用户名:</td>
<td><input type="text" name="username">
</td></tr>
<tr><td colspan="2" align="center">
<input name="submit" value="submit" type="submit">
</td></tr>
</table>
</form>
</body>
</html>

SetCookiesServlet
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import webbook.util.StringUtil;

public class SetCookiesServlet extends HttpServlet {

 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  String output = null;
  String username = request.getParameter("username");
  if (!StringUtil.validateNull(username)) {
   Cookie cookie1 = new Cookie("username", StringUtil.filterHtml(username));
   // cookie的有效期为1个月
   cookie1.setMaxAge(24 * 60 * 60 * 30);
   response.addCookie(cookie1);

   SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
   Cookie cookie2 = new Cookie("lastTime", sdf.format(new Date()));
   cookie2.setMaxAge(24 * 60 * 60 * 30);
   response.addCookie(cookie2);
   output = "本次登录时间与用户名已经写到Cookie中";
  }
  else {
   output = "用户名为空,请重新输入";
  }
  response.setContentType("text/html;charset=UTF-8");
  PrintWriter out = response.getWriter();
  out.println("<html>");
  out.println("<head><title>set cookies </title></head>");
  out.println("<body>");
  out.println("<h2>" + output + "</h2>");
  out.println("</body>");
  out.println("</html>");
  out.flush();
  out.close();
 }
}
 

GetCookiesServlet
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 GetCookiesServlet extends HttpServlet {

 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  response.setContentType("text/html;charset=UTF-8");
  PrintWriter out = response.getWriter();
  // 获取所有的cookie值
  Cookie[] cookies = request.getCookies();
  Cookie cookie = null;
  for (int i = 0; i < cookies.length; i++) {
   cookie = cookies[i];
   if (cookie.getName().equals("username")) {
    out.println("用户名:" + cookie.getValue());
   }
   if (cookie.getName().equals("lastTime")) {
    out.println("上次登录时间:" + cookie.getValue());
   }
  }
  out.flush();
  out.close();
 }
}

源代码的作者是XHW,日期是2011-7-22

四、销毁Cookie

Cookie cookies[] = request.getCookies();   
if (cookies != null)   
{   
    for (int i = 0; i < cookies.length; i++)   
    {                      
        cookies[i].setMaxAge(0); 
        response.addCookie(cookies[i]);   
    }   
}

原帖地址:http://www.cnblogs.com/hongten/archive/2011/07/22/2114448.html

时间: 2024-07-30 12:31:57

J2EE中Servlet操作cookie的相关文章

技巧:在Silverlight应用程序中操作Cookie

概述 很多朋友来信问如何在Silverlight 2中操作Cookie,这里专门写篇文章介绍一下.为了实现在Silverlight应用程序中对于Cookie的操作,我们需要借助于HtmlPage.Document对象. 在使用HtmlPage.Document之前,请先添加System.Windows.Browser命名空间.本文介绍了如何在Silverlight应用程序中操作Cookie,并在最后给出了一个操作Cookie的公用类,大家可以直接在自己的应用程序中使用. 写入Cookie 在Si

jquery.cookie中的操作

jquery.cookie中的操作: jquery.cookie.js是一个基于jquery的插件,点击下载! 创建一个会话cookie: $.cookie('cookieName','cookieValue'); 注:当没有指明cookie时间时,所创建的cookie有效期默认到用户浏览器关闭止,故被称为会话cookie. 创建一个持久cookie: $.cookie('cookieName','cookieValue',{expires:7}); 注:当指明时间时,故称为持久cookie,并

PHP中Session和Cookie是如何操作的_php技巧

Session PHP的$_SESSION可以存储当前用户数据信息,用户访问WEB网站的时候,PHP会给每个访问的用户创建一个session ID,该ID是唯一ID,保存在客户机上,而用户的会话数据是保存到服务端的,PHP可以对每个不同的用户信息进行存储,当会话过期后,用户session信息也会失效. 使用Session,在使用PHP session时,一定要在页头加上session_start(),告诉服务器开始使用session了,而且在它之前应该没有任何输出,否则会报错. <?php se

在J2EE中APPLET和HTML作为客户端的比较

j2ee|比较|客户端 前言 在j2ee中,客户端常用的两中方式是html,和基于application的applet,因为采用的技术不同,这两个方式都有其优缺点,在考虑采用何种技术(或者两种都用),需要根据两种技术的特点,以及此项目的应用范围来综合考虑.以下分"易用性","性能","维护,扩展","交互","安全"五部分来说明各自的特点,并针对客户,开发人员角色阐明一下个人观点. 易用性 客户对于易用性要

Java Servlet及Cookie的使用

cookie|servlet 本文介绍了Java Servlet编程所需的软件及环境配置.只要你有一台安装Windows 95/98了的PC机,便可以按照本文的步骤开发Servlet程序了.本文同时给出了通过Java Servlet向用户的硬盘写入和读取Cookie的方法及例程.通过它可以实现网上常见的个性化网页.网上购物篮.密码验证等. Java Servlet是运行于Web服务器上的Java代码,它可以接受用户请求,进行相应的处理,并向用户提供反馈.其作用类似于CGI程序,可以实现网页中很多

用JSP操作Cookie

cookie|js 说起来,Cookie应该是一种应用较久的技术了.早在HTML刚刚出现的时候,在每个独立的页面之间没有办法记录和标识不同的用户.后来人们就发明了Cookie技术,当用户访问网页时,它能够在访问者的机器上创立一个文件,我们把它叫作Cookie,写一段内容进去,来标识不同的用户.如果下次用户再访问这个网页的时候,它又能够读出这个文件里面的内容,这样网页就知道上次这个用户已经访问过该网页了. 虽然现在网页的制作技术比起几年以前已经发展了许多.不过有些时候,Cookie还是能够

CentOS中Servlet/JSP服务器的构建

所谓 Java Servlet ,是指用 Java 语言,实现动态网页的创建的功能,一般把简单的把它称为"Servlet"(无中文译文)的情况比较常见.和它处于同等类别的技术还有我们知道的 Perl.PHP.ASP等等.Servlet算是 J2EE中的一部分,所以在http://www.aliyun.com/zixun/aggregation/13760.html">企业应用方面, Servlet技术被广泛的应用着.而所谓的 JSP是 Servlet技术的延伸, Ser

android开发中webview保存cookie问题的解决

最近老是发现在IE里会有Cookie的问题,如IE下面无法登出,或无法登录,或者登录后信息却无法取到,而Firefox下面一直是通过的,都试过好多次了,今天终于找回的主要的原因: Cookie的问题: 首先看一下我的Cookie存取代码 (这个Cookie操作支持二级域名访问) #region 存取Cookie /// 〈summary〉 /// 存Cookie /// Json Lee 2007-09-24 /// 〈/summary〉 /// 〈param name="strName&quo

浅析javascript操作 cookie对象_基础知识

Cookie 对象 是一种以文件(Cookie文件)的形式保存在客户端硬盘的Cookies文件夹中的数据信息(Cookie数据).Cookie文件夹中的用户数据信息(Cookie数据).Cookie文件由所访问的Web站点建立,以长久的保存客户端与Web站点间的会话数据,并且该Cookie数据只允许被所访问的Web站点进行读取.(不允许进行跨域的访问) Cookie文件的格式: NS:Cookie.txt IE:用户名@域名.txt javascript 写入Cookie 格式: documen