点击submit后:
点击查看Cookies:
在C:\Documents and Settings\Administrator\Cookies目录下面会有一个  
 
hongten@webproject_cookie[2].txt 
 的文件;
这就是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.java
代码:
/**

 *
 

 */

package webbook.chapter6;
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;
/**

 *
 

 *
@author XHW

 *
@date 2011-7-22

 *
 

 */

public class SetCookiesServlet extends HttpServlet {
 private static final long serialVersionUID = 6849802930688070121L;
 public void doGet(HttpServletRequest request, HttpServletResponse response)

   throws ServletException, IOException {

  doPost(request, response);

 }
 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);

   SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

  
 Cookie cookie2 = new Cookie("lastTime", sdf.format(new Date()));

   cookie2.setMaxAge(24 * 60 * 60 * 30);

   response.addCookie(cookie1);

   response.addCookie(cookie2);

   output = "本次登录时间与用户名已经写到Cookie中。<br><a href=\"/webproject_cookie/GetCookiesServlet\">查看Cookies</a>";

  } else {

   output = "用户名为空,请重新输入。<br><a herf=\"/webproject_cookie/cookieInput.htm\">输入用户名</a>";

  }
  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.java
代码:
/**

 *
 

 */

package webbook.chapter6;
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;
/**

 *
 

 *
@author XHW

 * @date 2011-7-22

 *
 

 */

public class GetCookiesServlet extends HttpServlet {
 private static final long serialVersionUID = -156960358689563625L;
 public void doGet(HttpServletRequest request, HttpServletResponse response)

   throws ServletException, IOException {

  doPost(request, response);

 }
 public void doPost(HttpServletRequest request, HttpServletResponse response)

   throws ServletException, IOException {

  response.setContentType("text/html;charset=UTF-8");

  PrintWriter out = response.getWriter();

  out.println("<html>");

  out.println("<head><title>display login infomation</title></head>");

  out.println("<body>");

  out.println("<h2>从Cookie中获得上次登录时间与用户名</h2>");
//获取所有的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());

    out.println("<br>");

   }

 
  if (cookie.getName().equals("lastTime")) {

    out.println("上次登录时间:" + cookie.getValue());

    out.println("<br>");

   }

  }

  out.println("</body>");

  out.println("</html>");

  out.flush();

  out.close();

 }

}
 
cookie是web服务器通过浏览器保存在www用户端硬盘上的一个文本文件,这个文件中包含了文本信息
文本信息的内容是以“名/值”对(key/value)的形式进行储存的
可以让web开发者通过程序读写这个文本文件
在Windows XP中保存Cookie的目录是:C:\Documents and Settings\用户名\Cookies
  
Cookie的作用:
  解决浏览器用户与web服务器之间无状态通信
 
使用cookie的时候注意的事项:
  cookie的大小和数量是有限制的
  cookie在个人硬盘上所保存的文本信息是以明文格式进行保存的,没有任何的加密措施
  浏览器可以设定不使用cookie 
 

Java Web servlet中的cookie的更多相关文章

  1. [Java][Web] Servlet中转发和重定向比较

    Servlet中页面跳转的两种方式 请求转发 使用requestDispatcher对象 request.getRequestDispatcher("path").forward( ...

  2. 4、Servlet中的Cookie 用于存储 web 页面的用户信息。

    Servlet Cookie 处理 Cookie 是存储在客户端计算机上的文本文件,并保留了各种跟踪信息.Java Servlet 显然支持 HTTP Cookie. 识别返回用户包括三个步骤: 服务 ...

  3. JAVA WEB项目中各种路径的获取

    JAVA WEB项目中各种路径的获取 标签: java webpath文件路径 2014-02-14 15:04 1746人阅读 评论(0) 收藏 举报  分类: JAVA开发(41)  1.可以在s ...

  4. Java Web开发中MVC设计模式简介

    一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条 ...

  5. 对Java Web项目中路径的理解

    第一个:文件分隔符 坑比Window.window分隔符 用\;unix采用/.于是用File.separator来跨平台 请注意:这是文件路径.在File f = new File(“c:\\hah ...

  6. 在Java Web项目中添加定时任务

    在Java Web程序中加入定时任务,这里介绍两种方式:1.使用监听器注入:2.使用Spring注解@Scheduled注入. 推荐使用第二种形式. 一.使用监听器注入 ①:创建监听器类: impor ...

  7. Java Web开发中路径问题小结

     Java Web开发中,路径问题是个挺麻烦的问题,本文小结了几个常见的路径问题,希望能对各位读者有所帮助. (1) Web开发中路径的几个基本概念 假设在浏览器中访问了如下的页面,如图1所示: 图1 ...

  8. java web 项目中 简单定时器实现 Timer

    java web 项目中 简单定时器实现 Timer 标签: Java定时器 2016-01-14 17:28 7070人阅读 评论(0) 收藏 举报  分类: JAVA(24)  版权声明:本文为博 ...

  9. 在Java Web程序中使用监听器可以通过以下两种方法

    之前学习了很多涉及servlet的内容,本小结我们说一下监听器,说起监听器,编过桌面程序和手机App的都不陌生,常见的套路都是拖一个控件,然后给它绑定一个监听器,即可以对该对象的事件进行监听以便发生响 ...

随机推荐

  1. SpringMVC表单或Json中日期字符串与JavaBean的Date类型的转换

    SpringMVC表单或Json中日期字符串与JavaBean的Date类型的转换 场景一:表单中的日期字符串和JavaBean的Date类型的转换 在使用SpringMVC的时候,经常会遇到表单中的 ...

  2. 135-基于TMS320C6678、FPGA XC5VSX95T的2路Full模式Camera Link输入双目视觉处理平台

    基于TMS320C6678.FPGA XC5VSX95T的2路Full模式Camera Link输入双目视觉处理平台 一.板卡概述 本板卡由我公司自主研发,基于CPCI架构,符合CPCI2.0标准,采 ...

  3. Redis和Ehcached的区别

    Redis 属于独立的运行程序,需要单独安装后,使用JAVA中的Jedis来操纵.因为它是独立,所以如果你写个单元测试程序,放一些数据在Redis中,然后又写一个程序去拿数据,那么是可以拿到这个数据的 ...

  4. 抽象类(abstract)与接口(interface)的区别

    如果一个类中包含抽象方法,那么这个类就是抽象类.abstract只能用来修饰类或者方法,不能用来修饰属性. 接口是指一个方法的集合,接口中的所有方法都没有方法体.接口通过关键字interface实现. ...

  5. 《深入学习Redis(1):Redis内存模型 》笔记,待完善

    参考资料 https://www.cnblogs.com/kismetv/p/8654978.html 一.内存统计 info memory 查看内存统计 五.应用举例

  6. HashMap、HashTable、ConcurrentHashMap区别

    HashMap与HashTable区别 HashMap与ConcurrentHashMap区别 1.HashMap与HashTable的区别 HashMap线程不安全,HashTable线程安全 Ha ...

  7. Python repr, str, eval 使用小记 及 str 和 repr的区别

    >>> s = '1+2'>>> x = eval(s) #把引号剥离一次,就变成了运算1+2>>> x3>>> ss = st ...

  8. SQL必知必会学习笔记

    2.5  select SELECT       要返回的列或表达式     是FROM          从中检索数据的表        仅在从表选择数据时使用WHERE        行级过滤   ...

  9. java基础复习(一)

    一.常用的DOS命令  打开命令提示符窗口的方式: ① win + R --> 输入cmd --> 回车 ② 开始 --> 搜索程序和文件的框中输入  cmd  --> 回车 ...

  10. CSS中的flex布局

    1.flex 布局的概念 Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性.任何一个容器都可以指定为 Flex 布局,行内元素也可以通过 ...