Servlet 教程 之 Servlet Cookie 处理 5

简介: Servlet教程展示了如何处理Cookie。创建Cookie涉及构造函数(键值对),设置最大生存周期(如24小时)并将其添加到HTTP响应头。给定示例显示了一个Servlet,它从表单接收名字和URL,编码为Cookie,设置过期时间,然后在响应中发送。HTML表单用于触发Servlet。需在web.xml配置Servlet并用HTML页面调用。

Servlet 教程 之 Servlet Cookie 处理 5

Servlet Cookie 处理

通过 Servlet 设置 Cookie

通过 Servlet 设置 Cookie 包括三个步骤:

(1) 创建一个 Cookie 对象:您可以调用带有 cookie 名称和 cookie 值的 Cookie 构造函数,cookie 名称和 cookie 值都是字符串。

Cookie cookie = new Cookie("key","value");
请记住,无论是名字还是值,都不应该包含空格或以下任何字符:

[ ] ( ) = , " / ? @ : ;
(2) 设置最大生存周期:您可以使用 setMaxAge 方法来指定 cookie 能够保持有效的时间(以秒为单位)。下面将设置一个最长有效期为 24 小时的 cookie。

cookie.setMaxAge(606024);
(3) 发送 Cookie 到 HTTP 响应头:您可以使用 response.addCookie 来添加 HTTP 响应头中的 Cookie,如下所示:

response.addCookie(cookie);

实例
让我们修改我们的 表单数据实例,为名字和姓氏设置 Cookie。

package com.baidu.test;

import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLEncoder;

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 HelloServlet
    */
    @WebServlet("/HelloForm")
    public class HelloForm extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**

    • @see HttpServlet#HttpServlet()
      */
      public HelloForm() {
      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 name = new Cookie("name",

           URLEncoder.encode(request.getParameter("name"), "UTF-8")); // 中文转码
      

      Cookie url = new Cookie("url",

                 request.getParameter("url"));
      

      // 为两个 Cookie 设置过期日期为 24 小时后
      name.setMaxAge(606024);
      url.setMaxAge(606024);

      // 在响应头中添加两个 Cookie
      response.addCookie( name );
      response.addCookie( url );

      // 设置响应内容类型
      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" +
           "<h1 align=\"center\">" + title + "</h1>\n" +
           "<ul>\n" +
           "  <li><b>站点名:</b>:"
           + request.getParameter("name") + "\n</li>" +
           "  <li><b>站点 URL:</b>:"
           + request.getParameter("url") + "\n</li>" +
           "</ul>\n" +
           "</body></html>");
      

      }

      /**

    • @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 HelloForm,并在 web.xml 文件中创建适当的条目:

<?xml version="1.0" encoding="UTF-8"?>




HelloForm

com.baidu.test.HelloForm


HelloForm

/TomcatTest/HelloForm

最后尝试下面的 HTML 页面来调用 Servlet。
<!DOCTYPE html>



站点名 :


站点 URL:





保存上面的 HTML 内容到文件 /TomcatTest/test.html 中。
目录
相关文章
|
1月前
|
存储 Java
JSP 教程 之 JSP Cookie 处理 8
JSP教程讲解如何处理Cookie。要删除Cookie,需获取已存在Cookie,将其有效期设为0,然后重新添加到响应头。以下示例代码演示如何删除一个名为&quot;name&quot;的Cookie。当运行此JSP,第二次访问时,&quot;name&quot; Cookie将变为null。页面还会显示现有Cookie的名称和解码后的值。
10 2
|
1月前
|
存储 Java
JSP 教程 之 JSP Cookie 处理 7
JSP教程讲解了如何处理Cookie。Cookie是客户端的文本文件,用于存储跟踪信息。在JSP中,通过调用`request.getCookies()`获取Cookie数组,然后遍历并使用`getName()`和`getValue()`读取每个Cookie的名称和值。示例代码展示了一个JSP页面,它遍历请求中的Cookie,并解码显示其名称和值。如果未找到Cookie,则显示相应消息。
15 1
|
1月前
|
存储 前端开发 小程序
表白墙完善(数据库,前端,后端Servlet),再谈Cookie和Session。以及一个关于Cookie的练习小程序
表白墙完善(数据库,前端,后端Servlet),再谈Cookie和Session。以及一个关于Cookie的练习小程序
|
2月前
|
自然语言处理 定位技术
Servlet 教程 之 Servlet 国际化 3
Servlet教程展示了如何实现国际化(i18n)和本地化(l10n),利用`request.getLocale()`获取用户区域设置,通过`DateFormat`类格式化特定区域的日期。示例代码演示了根据用户区域显示相应日期,强调了处理多语言网站的关键方法,如`getCountry()`、`getLanguage()`等。
33 6
|
1月前
|
存储 Java
JSP 教程 之 JSP Cookie 处理 6
JSP教程讲解了如何处理Cookie。Cookie是客户端的文本文件,用于存储跟踪信息。在JSP中,设置Cookie涉及三步:创建Cookie对象、设置有效期和添加到HTTP响应头。示例代码展示了一个JSP页面,接收HTML表单数据,编码后存储为Cookie,并设置24小时有效期。用户可以通过GET方法提交表单到main.jsp,实现Cookie设置。
17 2
|
1月前
|
存储 JavaScript 前端开发
JSP 教程 之 JSP Cookie 处理 2
JSP教程讲解了如何处理Cookie,Cookie是存储在客户端的文本文件,用于存储跟踪信息。在JSP中,通过设置HTTP头部的Set-Cookie来创建Cookie,包含键值对、过期时间、路径和域名。当用户访问匹配的页面时,浏览器会发送Cookie回服务器。JSP使用request对象的getCookies()方法获取Cookie数组。
9 1
|
18天前
|
前端开发 Java 应用服务中间件
JavaEE:Servlet后端搭建部署 一条龙全教程
JavaEE:Servlet后端搭建部署 一条龙全教程
|
22天前
|
API
获得servlet相关API,获得请求头和cookie-spring23
获得servlet相关API,获得请求头和cookie-spring23
|
1月前
|
存储 安全 Java
JSP 教程 之 JSP Cookie 处理 3
JSP教程介绍了Cookie处理,Cookie是客户端存储的文本文件,用于跟踪信息。JSP支持HTTP cookie操作,提供了如设置域名、有效期、路径及加密传输等方法。例如,`setDomain()`设定域名,`setMaxAge()`设置有效期,`setPath()`定义作用路径,而`setSecure()`则用于指定安全传输。此外,`setComment()`可设置cookie用途注释。
17 0
|
1月前
|
存储 Java
JSP 教程 之 JSP Cookie 处理 1
JSP教程讲解了如何处理Cookie,Cookie是客户端存储的文本信息,用于跟踪用户。JSP支持HTTP cookie,处理包括:服务器发送cookie到浏览器、浏览器存储并在后续请求时回传。教程涵盖设置、重置、访问和删除Cookie的技巧。同时,提到了针对中文编码解码的方法,使用`URLEncoder.encode`进行编码,`URLDecoder.decode`进行解码。
10 0