使用Cookie的Servlet程序应用和实例
2008-01-05 09:12:00 来源:WEB开发网Cookie是一小块可以嵌入HTTP请求和响应的数据。它在服务器上产生,并作为响应头域的一部分返回给客户。浏览器在收到有Cookie的响应后,会把Cookie的内容以"要害字/值"的形式写入到一个专为存放Cookie的文本文件中。浏览器会把Cookie的信息与请求发送给服务器,这样服务器就可以再次读取Cookie中存放的数据了。Cookie可以对有效期进行设置,浏览器不会把过期的Cookie发送给服务器。
Servlet API提供了一个Cookie类,封装了对Cookie的基本操作。如下所示。
java.lang.Object
-javax.servlet.http.Cookie
public class Cookie extends Object implements Cloneable
Cookie类的方法如表14-4所示。
表14-4 Cookie类的方法
方 法 意 义
Cookie(String, String) 生成一个有名和值的Cookie
clone() 返回当前对象的一个拷贝
getComment() 返回描述该Cookie的注释,没有就为空
getDomain() 返回该Cookie的域名
getMaxAge() 返回该Cookie的最大寿命
getName() 返回该Cookie的名字
getPath() 返回使用该Cookie的所有URL前缀
getSecure() 返回该Cookie的安全标志
getValue() 返回该Cookie的值
getVersion() 返回该Cookie的版本
setComment(String) 设置描述该Cookie的注释
setDomain(String) 设置该Cookie的域名
setMaxAge(int) 设置该Cookie的最大寿命
setPath(String) 设置该Cookie只能被从使用该URL前缀的请求提出
setSecure(boolean) 设置该Cookie的安全标志
setValue(String) 设置该Cookie的值
setVersion(int) 设置该Cookie所使用的协议的版本号
实例:使用Cookie的Servlet程序
下面的程序示例14-6就是对Cookie的基本运用。
【程序源代码】
1 // ==================== PRogram Description ======================
2 // 程序名称:示例14-6: CookieCounter.java
3 // 程序目的:编写Cookie的Servlet程序
4 // ==========================================================
5 package test.cookie;
6
7 import java.io.*;
8 import java.util.*;
9 import javax.servlet.*;
10 import javax.servlet.http.*;
11
12 public class CookieCounter extends HttpServlet {
public void init(ServletConfig config) throws ServletException {
14 super.init(config);
15 }
16
public void service(HttpServletRequest request,
HttpServletResponse response) throws
18 IOException {
boolean cookieFound = false;
20 Cookie thisCookie = null;
21 response.setContentType("text/Html;charset=gb2312;");
22 PrintWriter out = response.getWriter();
23
24 Cookie[] cookies = request.getCookies();
25 if (cookies != null){
26 for (int i = 0; i < cookies.length; i++) {
27 thisCookie = cookies[0];
if (thisCookie.getName().equals("CookieCount")) {
29 cookieFound = true;
30 break;
31 }
32 }
33 }
34
35 if (cookieFound == false) {
36 thisCookie = new Cookie("CookieCount", "1");
37 thisCookie.setMaxAge(10);
38 response.addCookie(thisCookie);
39 }
40
41 out.println("
42 "
43 " " +
44 "
- ››使用脚本恢复WinXP系统的用户登录密码
- ››使用phpMyadmin创建数据库及独立数据库帐号
- ››使用Zend Framework框架中的Zend_Mail模块发送邮件...
- ››使用cout标准输出如何控制小数点后位数
- ››使用nofollow标签做SEO的技巧
- ››使用 WebSphere Message Broker 的 WebSphere Tra...
- ››使用SQL Server事件探查器做应用程序的性能分析
- ››使用SQL Server事件探查器分析死锁原因
- ››使用纯文本文件打造WCF服务
- ››使用 Dojo 开发定制 Business Space 小部件,第 4...
- ››使用 ADDRESS 与 INDIRECT函数查询信息
- ››使用 COLUMN函数编制单元信息
更多精彩
赞助商链接