Servlet 教程 之 Servlet Cookie 处理 7

简介: Servlet教程展示了如何删除Cookie。Servlet `DeleteCookies`通过设置setMaxAge()为零,从响应头移除名为"url"的Cookie。当运行此Servlet,之前的ReadCookies返回的url将是null。代码包括检查请求中的Cookie,匹配名称后删除,并显示删除确认信息。

Servlet 教程 之 Servlet Cookie 处理 7

Servlet Cookie 处理

通过 Servlet 删除 Cookie

删除 Cookie 是非常简单的。如果您想删除一个 cookie,那么您只需要按照以下三个步骤进行:

读取一个现有的 cookie,并把它存储在 Cookie 对象中。
使用 setMaxAge() 方法设置 cookie 的年龄为零,来删除现有的 cookie。
把这个 cookie 添加到响应头。
实例
下面的例子将删除现有的名为 "url" 的 cookie,当您下次运行 ReadCookies 的 Servlet 时,它会返回 url 为 null。

package com.baidu.test;

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

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

/**

  • Servlet implementation class DeleteCookies
    */
    @WebServlet("/DeleteCookies")
    public class DeleteCookies extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**

    • @see HttpServlet#HttpServlet()
      */
      public DeleteCookies() {
      super();
      // TODO Auto-generated constructor stub
      }

      /**

    • @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
      */
      public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
      {
      Cookie cookie = null;
      Cookie[] cookies = null;
      // 获取与该域相关的 Cookie 的数组
      cookies = request.getCookies();

       // 设置响应内容类型
      

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

      PrintWriter out = response.getWriter();
      String title = "删除 Cookie 实例";
      String docType = "<!DOCTYPE html>\n";
      out.println(docType +

             "<html>\n" +
             "<head><title>" + title + "</title></head>\n" +
             "<body bgcolor=\"#f0f0f0\">\n" );
      

      if( cookies != null ){

      out.println("<h2>Cookie 名称和值</h2>");
      for (int i = 0; i < cookies.length; i++){
         cookie = cookies[i];
         if((cookie.getName( )).compareTo("url") == 0 ){
              cookie.setMaxAge(0);
              response.addCookie(cookie);
              out.print("已删除的 cookie:" + 
                           cookie.getName( ) + "<br/>");
         }
         out.print("名称:" + cookie.getName( ) + ",");
         out.print("值:" + cookie.getValue( )+" <br/>");
      }
      

      }else{

       out.println(
         "<h2 class=\"tutheader\">No Cookie founds</h2>");
      

      }
      out.println("");
      out.println("");
      }

      /**

    • @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
      */
      protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      // TODO Auto-generated method stub
      doGet(request, response);
      }

}
编译上面的 Servlet DeleteCookies,并在 web.xml 文件中创建适当的条目。现在运行 http://localhost:8080/TomcatTest/DeleteCookies

目录
相关文章
|
5天前
|
自然语言处理 定位技术
Servlet 教程 之 Servlet 国际化 3
Servlet教程展示了如何实现国际化(i18n)和本地化(l10n),利用`request.getLocale()`获取用户区域设置,通过`DateFormat`类格式化特定区域的日期。示例代码演示了根据用户区域显示相应日期,强调了处理多语言网站的关键方法,如`getCountry()`、`getLanguage()`等。
15 6
|
5天前
|
开发框架 缓存 Java
JSP 教程 之 Eclipse JSP/Servlet 环境搭建 1
本教程指导如何使用Eclipse搭建JSP/Servlet开发环境。需下载Eclipse J2EE和Tomcat,将Tomcat解压至无中文和空格的D盘目录。启动Tomcat后,服务器运行,通过浏览器访问`http://localhost:8080/`。在Tomcat的webapps\ROOT目录创建test.jsp文件,输入代码并访问`http://localhost:8080/test.jsp`以验证环境配置成功。
8 1
|
5天前
|
JavaScript 前端开发 Java
【JavaEE】使Cookie与Session失效-Servlet上传文件操作-优化表白墙(下)
【JavaEE】使Cookie与Session失效-Servlet上传文件操作-优化表白墙
8 0
|
5天前
|
存储 前端开发 Java
【JavaEE】使Cookie与Session失效-Servlet上传文件操作-优化表白墙(上)
【JavaEE】使Cookie与Session失效-Servlet上传文件操作-优化表白墙
8 0
|
5天前
|
Java 关系型数据库 MySQL
Servlet 教程 之 Servlet 有用的资源
探索Servlet世界:访问Sun&#39;s Site获取官方资料,Tomcat作为开源JSP引擎,搭配MySQL Connector/J实现数据库连接。深入学习Java编程,参考The Java Tutorials及Java 2 SDK文档,免费下载Java并关注Sun Developer Network获取最新资源。
11 1
|
5天前
|
自然语言处理 定位技术
Servlet 教程 之 Servlet 国际化 4
Servlet教程之国际化讲解了如何根据用户区域设置展示多语言内容。关键术语包括国际化(i18n)、本地化(l10n)和区域设置(locale)。Servlet通过`request.getLocale()`获取区域设置,并使用`NumberFormat`类格式化特定区域的货币。示例代码展示了如何根据客户端locale显示货币格式。
12 3
|
5天前
|
定位技术
Servlet 教程 之 Servlet 国际化 3
Servlet教程展示了如何实现国际化(i18n)和本地化(l10n)。通过request对象的getLocale()获取用户区域设置,利用DateFormat进行特定区域的日期格式化。示例代码显示了根据用户浏览器设置显示相应语言和文化的日期。
9 2
|
5天前
|
定位技术
Servlet 教程 之 Servlet 国际化 2
Servlet教程展示了如何实现网站的国际化(i18n)和本地化(l10n)。通过识别用户的区域设置(locale),Servlet可以提供不同语言版本的页面。`request.getLocale()`用于获取用户浏览器的locale。关键方法包括`getCountry()`、`getDisplayCountry()`、`getLanguage()`和`getDisplayLanguage()`,用于获取国家、语言名称及其显示形式。设置`Content-Language`头确保西欧语言的正确显示,例如在Servlet示例中,使用HTML实体显示西班牙语字符。
9 0
|
5天前
|
定位技术
Servlet 教程 之 Servlet 国际化 1
Servlet教程展示了如何实现国际化(i18n)和本地化(l10n),通过request对象的getLocale()获取用户区域设置。方法如:getCountry(), getDisplayCountry(), getLanguage(), 和 getDisplayLanguage()等用于检测语言和国家信息。实例中,Servlet展示请求的语言和国家,以响应不同区域设置的用户需求。
8 0
|
5天前
|
缓存 小程序 Java
Servlet 教程 之 Servlet 调试 6
Servlet调试涉及大量客户端/服务器交互,常带来困难。使用JDB调试器调试HttpServer来模拟HTTP请求,需设置正确类路径,包括servlet和相关类,以及servlet和支撑类的路径。通过在Servlet代码中设置断点,通过浏览器触发请求进行调试。注释法也可辅助调试,通过暂时移除部分代码观察bug变化。查看HTTP头信息对理解Servlet行为有帮助。关键技巧包括:注意classes目录不重载,强制浏览器刷新避免缓存,确保servlet的init()方法正确处理ServletConfig。
17 3