Java Servlet编程应用之Cookie使用方法

  Cookie 是一小块可以嵌入HTTP 请求和响应中的数据,它在服务器上产生,并作为响应头域的一部分返回用户。浏览器收到包含Cookie 的响应后,会把Cookie 的内容用“关键字/值” 对的形式写入到一个客户端专为存放Cookie 的文本文件中。浏览器会把Cookie 及随后产生的请求发给相同的服务器,服务器可以再次读取Cookie 中存Cookie 可以进行有效期设置,过期的Cookie 不会发送给服务器。

  Servlet API 提供了一个Cookie 类,封装了对Cookie 的一些操作。Servlet 可以创建一个新的Cookie,设置它的关键字、值及有效期等属性,然后把Cookie 设置在HttpServletResponse 对象中发回浏览器,还可以从HttpServletRequest 对象中获取Cookie。

  编程思路:Cookie 在实际的Servlet 编程中是很广泛应用,下面是一个从Servlet 中获取Cookie 信息的例子。

  ShowCookies.java 的源代码如下:

import javax.servlet.*;
import javax.servlet.http.*;
/**
* <p>This is a simple servlet that displays all of the
* Cookies present in the request
*/
public class ShowCookies extends HttpServlet
{
 public void doGet(HttpServletRequest req, HttpServletResponse resp)
 throws ServletException, java.io.IOException
 {
  // Set the content type of the response
  resp.setContentType("text/html;charset=gb2312");
  // Get the PrintWriter to write the response
  java.io.PrintWriter out = resp.getWriter();
  // Get an array containing all of the cookies
  Cookie cookies[] = req.getCookies();
  // Write the page header
  out.println("<html>");
  out.println("<head>");
  out.println("<title>Servlet Cookie Information</title>");
  out.println("</head>");
  out.println("<body>");
  if ((cookies == null) || (cookies.length == 0)) {
   out.println("没有 cookies ");
  }
  else {
   out.println("<center><h1>响应消息中的Cookies 信息 </h1>");
   // Display a table with all of the info
   out.println("<table border>");
   out.println("<tr><th>Name</th><th>Value</th>" +
"<th>Comment</th><th>Max Age</th></tr>");
   for (int i = 0; i < cookies.length; i++) {
    Cookie c = cookies[i];
    out.println("<tr><td>"+c.getName()+"</td><td>"+
    c.getValue()+"</td><td>"+c.getComment()+"</td><td>"+
c.getMaxAge()+"</td></tr>");
  }
  out.println("</table></center>");
 }
 // Wrap up
 out.println("</body>");
 out.println("</html>");
 out.flush();
}
/**
* <p>Initialize the servlet. This is called once when the
* servlet is loaded. It is guaranteed to complete before any
* requests are made to the servlet
* @param cfg Servlet configuration information
*/
public void init(ServletConfig cfg)
throws ServletException
{
 super.init(cfg);
}
/**
* <p>Destroy the servlet. This is called once when the servlet
* is unloaded.
*/
public void destroy()
{
 super.destroy();
}
}

时间: 2024-12-21 20:41:43

Java Servlet编程应用之Cookie使用方法的相关文章

Java Servlet 编程及应用之Cookie的使用方法

Cookie 是一小块可以嵌入HTTP 请求和响应中的数据,它在服务器上产生,并作为响应头域的一部分返回用户.浏览器收到包含Cookie 的响应后,会把Cookie 的内容用"关键字/值" 对的形式写入到一个客户端专为存放Cookie 的文本文件中.浏览器会把Cookie 及随后产生的请求发给相同的服务器,服务器可以再次读取Cookie 中存Cookie 可以进行有效期设置,过期的Cookie 不会发送给服务器. Servlet API 提供了一个Cookie 类,封装了对Cookie

Java Servlet 编程及应用之四

HttpServlet 是从GenericServlet 继承而来,因此它具有GenericServlet 类似的方法和对象,是我们使用Servlet编程经常用到的包,它支持HTTP 的post 和 get 等方法. 编程思路:下面的例子,运行结果是输出简单地返回客户发送给服务器的请求行和头部信息,以及一些可访问的HTTP 信息等. SnoopServlet.java 的源代码如下: import java.io.IOException;import java.io.PrintWriter;im

关于Java Servlet编程应用基础分析

servlet|编程 一.概述 Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面. Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机. Java Servlet 与 Applet 的比较: 相似之处: * 它们不是独立的应用程序,没有main()方法. * 它们不是由用户或程序员调用,而是由另外一个

Java Servlet 编程及应用(一)

一.概述 Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面. Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机. Java Servlet 与 Applet 的比较: 相似之处: * 它们不是独立的应用程序,没有main()方法. * 它们不是由用户或程序员调用,而是由另外一个应用程序(容器)调用.

Java Servlet API类库中的基本方法介绍

servlet Java Servlet 开发工具(JSDK)提供了多个软件包,在编写 Servlet 时需要用到这些软件包.其中包括两个用于所有 Servlet 的基本软件包:javax.servlet 和 javax.servlet.http.可从sun公司的Web站点下载 Java Servlet 开发工具. 下面主要介绍javax.servlet.http提供的HTTP Servlet应用编程接口. HTTP Servlet 使用一个 HTML 表格来发送和接收数据.要创建一个 HTTP

Java Servlet 编程及应用之二

编写Servlet所需要的开发环境 进行Servlet开发所需要的基本环境是JSDK以及一个支持Servlet的Web服务器. 1.JSDK(Java Servlet Development Kit) JSDK包含了编译Servlet应用程序所需要的Java类库以及相关的文档.对于利用Java 1.1进行开发的用户,必须安装JSDK.JSDK已经被集成进Java 1.2 Beta版中,如果利用Java 1.2或以上版本进行开发,则不必安装JSDK. JSDK可以在Javasoft公司的站点免费下

Java Servlet 编程及应用之三

GenericServlet 类可以说时JSDK 中最重要的类,也是最基本的类.程序员要编写Servlet 应用程序,一般要继承JSDK 提供的GenericServlet 类或它的子类HttpServlet 类. 编程思路:下面是一个简单的例子,在服务器端执行它,就是向客户端的浏览器中输出"HELLO WORLD "以及服务器的时间等信息. HelloWorldServlet.java 的源代码如下: import java.io.*;import java.util.Date;im

实战Java多线程编程之不提倡的方法

编程|多线程 不提倡使用的方法是为支持向后兼容性而保留的那些方法,它们在以后的版本中可能出现,也可能不出现.Java 多线程支持在版本 1.1 和版本 1.2 中做了重大修订,stop().suspend() 和 resume() 函数已不提倡使用.这些函数在 JVM 中可能引入微妙的错误.虽然函数名可能听起来很诱人,但请抵制诱惑不要使用它们. 调试线程化的程序 在线程化的程序中,可能发生的某些常见而讨厌的情况是死锁.活锁.内存损坏和资源耗尽. 死锁 死锁可能是多线程程序最常见的问题.当一个线程

Java函数式编程(八):字符串及方法引用_java

第三章 字符串,比较器和过滤器 JDK引入的一些方法对写出函数式风格的代码很有帮助.JDK库里的一些的类和接口我们已经用得非常熟悉了,比如说String,为了摆脱以前习惯的那种老的风格,我们得主动寻找机会来使用这些新的方法.同样,当我们需要用到只有一个方法的匿名内部类时,我们现在可以用lambda表达式来替换它了,不用再像原来那样写的那么繁琐了. 本章我们会使用lambda表达式和方法引用来遍历字符串,实现Comparator接口,查看目录中的文件,监视文件及目录的变更.上一章中介绍的一些方法还