龙空技术网

《Servlet》第23节:Cookie对象常用方法介绍

Java新手笔记 26

前言:

如今大家对“java设置cookie不成功”大概比较注重,大家都想要知道一些“java设置cookie不成功”的相关资讯。那么小编在网摘上搜集了一些对于“java设置cookie不成功””的相关内容,希望咱们能喜欢,朋友们一起来学习一下吧!

Cookie是服务器在浏览器客户端保存的一小段数据信息,一般用于跟踪用户的状态信息。HttpServletRequest请求对象中,提供了获取Cookie对象的方法;HttpServletResponse响应对象中,提供了设置Cookie的方法。下面介绍一下Cookie对象中的常用方法。

1.1、Cookie的优缺点(1)Cookie的优点数据保存在浏览器客户端,不占用服务器的内存。Cookie可以支持跨域通信,不同的域下的Cookie可以共享。(2)Cookie的缺点浏览器可以禁用Cookie,一旦禁用,那么Cookie就不可用了。Cookie的大小是有限制的,最大能够保存4KB的内容。安全性低,Cookie保存在客户端中,所以数据是不安全的。每次网络请求中,都将携带Cookie数据。1.2、获取Cookie对象

HttpServletRequest请求对象中,提供了一个getCookies()方法,该方法作用是获取当前请求中的所有Cookie对象信息,返回一个Cookie数组。

package com.gitcode.servlet;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 java.io.IOException;/** * @version 1.0.0 * @Date: 2024/2/11 21:45 * @Author ZhuYouBin * @Description: */public class CookieServlet extends HttpServlet {    @Override    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        // 获取Cookie对象        Cookie[] cookies = request.getCookies();        if (cookies != null) {            // 遍历所有Cookie对象            for (Cookie cookie : cookies) {                System.out.println("Cookie的名称: " + cookie.getName());                System.out.println("Cookie的值: " + cookie.getValue());                System.out.println("Cookie的最大有效时间(秒): " + cookie.getMaxAge());                                System.out.println("Cookie可访问的路径: " + cookie.getPath());                System.out.println("Cookie可访问的域名: " + cookie.getDomain());            }        }    }}
1.3、设置Cookie对象

HttpServletResponse响应对象中,提供了一个addCookie()方法,可以用于向客户端发送Cookie数据。案例代码:

package com.gitcode.servlet;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 java.io.IOException;/** * @version 1.0.0 * @Date: 2024/2/11 21:49 * @Author ZhuYouBin * @Description: */public class SetCookieServlet extends HttpServlet {    @Override    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        // 创建Cookie对象        Cookie cookie = new Cookie("username", "Tomcat-2024");        // Cookie的注释信息,不常用        cookie.setComment("这是Cookie的注释信息");        // Cookie的版本,不常用        cookie.setVersion(3);        // 设置Cookie最大有效时间,单位:秒        cookie.setMaxAge(60);        // 设置Cookie的可访问路径,哪些路径可以访问这个Cookie信息        cookie.setPath("/");        // 设置Cookie的可访问域名,哪些域名下可以访问这个Cookie信息        cookie.setDomain("localhost");        // 响应Cookie        response.addCookie(cookie);    }}

运行结果如下所示:

1.4、Cookie交互流程图

服务器(Servlet容器)和浏览器(客户端)之间,Cookie数据的交互流程如下图所示:

以上,就是Cookie对象的常用方法及其使用。

今天就到这里,未完待续~~

标签: #java设置cookie不成功 #java 设置cookie