//操作cookie的方法
public static void addCookie(HttpServletResponse response,String name,String value,int maxAge){
Cookie cookie = new Cookie(name,value);
cookie.setPath("/");
if(maxAge>0) cookie.setMaxAge(maxAge);
response.addCookie(cookie);
}
public static Cookie getCookieByName(HttpServletRequest request,String name){
Map<String,Cookie> cookieMap = ReadCookieMap(request);
if(cookieMap.containsKey(name)){
Cookie cookie = (Cookie)cookieMap.get(name);
return cookie;
}else{
return null;
}
}
private static Map<String,Cookie> ReadCookieMap(HttpServletRequest request){
Map<String,Cookie> cookieMap = new HashMap<String,Cookie>();
Cookie[] cookies = request.getCookies();
if(null!=cookies){
for(Cookie cookie : cookies){
cookieMap.put(cookie.getName(), cookie);
}
}
return cookieMap;
}
java 有两个测试方法,一个是设置cookie,一个是清除cookie
看下页面变化:
设置cookie:
Cookie cookieTest = getCookieByName(request, "test");
if(cookieTest == null) {
String uuid = UUID.randomUUID().toString().replace("-", "");
addCookie(response, "test", uuid, 360000);
}
这个方法执行后,cookie key为 test,可以从前台获取到。
然后点击页面按钮,调用下个方法,清除cookie,清除前先执行一段时间吧。
for(int i=0;i<1000000;i++) {
System.out.println("i="+i);
}
Cookie cookieTest = getCookieByName(request, "test");
cookieDid.setMaxAge(0);
cookieDid.setPath("/");
response.addCookie(cookieTest );
首先在不关闭浏览器的情况下,清除方法执行之后,发现cookie确实被清掉了,没有问题
但是另一种情况,在执行循环的过程中关闭掉浏览器,断点跟踪,实际上后台代码确实是执行了,但是重新进入发现cookie其实是没有清掉,跟上次生成的那个是一样的。
目前执行效果是这样,但是具体原因还是不是太清楚,猜测是因为cookie是通过HttpServletResponse 操作的,关闭页面,虽然执行了代码,但是可能由于浏览器关闭对cookie的操作就失效了吧。
相关推荐
在Java程序设计中,创建一个网页浏览器涉及到许多关键知识点,包括网络编程、GUI设计、解析HTML等。以下是对这些主题的详细阐述: 1. **Java网络编程**:Java提供了丰富的API来处理网络通信,如`java.net`包下的...
在这个特定的场景中,爬虫需要处理登录过程,以便能够携带有效的COOKIE信息来访问受保护的网页,如题库数据。下面,我们将深入探讨如何实现这个功能,以及与MySQL数据库的结合。 首先,登录网站时通常需要发送一个...
Java JSP、SQL和Cookie是Web开发中的三个关键概念,对于初学者来说,理解并掌握它们是构建动态网站的基础。 **Java JSP(JavaServer Pages)** Java JSP是一种服务器端脚本语言,用于创建动态网页。JSP将HTML代码与...
Session在客户端由一个唯一的Session ID标识,通过Cookie在浏览器端保存。 - 之后的每次请求,客户端都会携带Session ID,服务器据此判断用户是否已登录。 5. **安全性**: - 密码处理:为了保护用户信息安全,...
【JAVA WEB 选课系统源代码】是一个典型的Java Web应用程序示例,对于初学者和有经验的开发者来说,都是一个宝贵的资源。这个项目的核心是利用Java语言和Web技术来构建一个能够实现学生选课功能的系统。下面我们将...
9. **登录状态保持**:可以使用cookie或者session来保持用户的登录状态,当用户关闭浏览器后,可以根据需要决定是否持久化登录状态。 10. **登录认证机制**:除了简单的用户名和密码验证,还可以实现更高级的认证...
java为数据结构中的映射定义一个接口java.util.Map,有四个实现类HashMap Hashtable LinkedHashMap TreeMap用法和区别;对Map排序; 5字符串 使用String;判断一个字符串是否是合法的java标识符;使用StringBuffer;...
Java图书查询系统是一种基于Java编程语言开发的信息管理系统,主要用于图书馆的图书信息检索、借阅管理以及相关业务处理。系统的核心功能包括图书数据管理、用户管理、借阅与归还操作等,旨在提高图书馆的工作效率和...
网络爬虫,也被称为网页蜘蛛或自动索引器,是一种自动化程序,用于遍历互联网上的网页,抓取其中的信息,并可以按照预设规则进行存储和分析。在Java中实现网络爬虫,通常会涉及到以下几个核心知识点: 1. **HTTP...
**JAVA JSP学校学生考勤管理系统源代码详解** 在当今教育信息化进程中,高效的学生考勤管理系统扮演着至关重要的角色。本系统以JAVA JSP技术为核心,结合SQLSERVER数据库,为学校提供了一套全面、易用的考勤管理...
【Java微博系统】是一个基于Java...通过深入研究这个项目,开发者可以提升对Java Web开发的理解,学习到实际项目中的最佳实践,对于想要从事社交网络开发或者Java后端开发的人员来说,这是一个非常有价值的参考资源。
### JAVA中JSP常用代码详解 #### 一、页面重定向与状态码设置 在Java Web开发中,经常需要对用户请求进行重定向或者设置HTTP响应的状态码来告知客户端当前请求的结果。以下介绍两种常见的场景及其实现方式: 1. *...
如果设置为负值,Cookie将在浏览器关闭时删除。 - `getPath()`:设定Cookie的作用路径。默认情况下,Cookie适用于当前目录及其子目录,可通过`setPath()`指定。 - `setSecure(boolean flag)`:如果设置为true,表示...
解释:HTML 注释是指在 HTML 代码中使用的注释语句,用于解释代码的作用。JSP 中的 HTML 注释特点是发布网页时看不到,在源文件中能看到。 2. 下面哪项不是 Form 的元素?表格(table)。 解释:Form 表单元素包括 ...
在Java EE Web开发中,构建一个简单的购物车应用是一个经典的实战项目,它涵盖了Web开发中的多个核心概念和技术。本案例中,我们主要关注Cookie技术的使用以及与数据库的交互,这是构建任何电子商务平台的基础。 ...
在这个系统中,JSP(JavaServer Pages)发挥着核心作用,它是一种动态网页技术,允许开发者在HTML中嵌入Java代码,实现了服务器端的动态内容生成。 在构建这个系统时,首先会涉及到前端页面的设计,通常会使用HTML...
Java中的JDBC(Java Database Connectivity)是连接数据库的标准接口,开发者可以通过它来执行SQL语句,完成数据的增删改查操作。 6. **JSON或XML数据交换格式**:在服务器与客户端之间传输数据时,可能会使用JSON...
Java必备知识点大全的内容非常丰富,涵盖了Java语言的基础知识、常用的框架以及数据库的应用等方面,是每一个Java开发者学习和面试时的重要参考。下面是对文档中各个知识点的详细解析。 基础篇: JDK常用的包:Java...