import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CookieUtils {
/**
* Returns the specified cookie, or <tt>null</tt> if the cookie
* does not exist. Note: because of the way that cookies are implemented
* it's possible for multiple cookies with the same name to exist (but with
* different domain values). This method will return the first cookie that
* has a name match.
*
* @param request the servlet request.
* @param name the name of the cookie.
* @return the Cookie object if it exists, otherwise <tt>null</tt>.
*/
public static Cookie getCookie(HttpServletRequest request, String name) {
Cookie cookies[] = request.getCookies();
// Return null if there are no cookies or the name is invalid.
if (cookies == null || name == null || name.length() == 0) {
return null;
}
// Otherwise, we do a linear scan for the cookie.
Cookie cookie = null;
for (int i = 0; i < cookies.length; i++) {
// If the current cookie name matches the one we're looking for, we've
// found a matching cookie.
if (cookies[i].getName().equals(name)) {
cookie = cookies[i];
// The best matching cookie will be the one that has the correct
// domain name. If we've found the cookie with the correct domain name,
// return it. Otherwise, we'll keep looking for a better match.
if (request.getServerName().equals(cookie.getDomain())) {
break;
}
}
}
return cookie;
}
/**
* Deletes the specified cookie.
*
* @param request the servlet request.
* @param response the servlet response.
* @param cookie the cookie object to be deleted.
*/
public static void deleteCookie(HttpServletRequest request, HttpServletResponse response, Cookie cookie){
if (cookie != null) {
// Invalidate the cookie
String path = request.getContextPath() == null ? "/" : request.getContextPath();
if ("".equals(path)) {
path = "/";
}
cookie.setPath(path);
cookie.setValue("");
cookie.setMaxAge(0);
response.addCookie(cookie);
}
}
/**
* Stores a value in a cookie. By default this cookie will persist for 30 days.
*
* @see #setCookie(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse,String,String,int)
* @param request the servlet request.
* @param response the servlet response.
* @param name a name to identify the cookie.
* @param value the value to store in the cookie.
*/
public static void setCookie(HttpServletRequest request, HttpServletResponse response, String name, String value) {
// Save the cookie value for 1 month
setCookie(request, response, name, value, 60*60*24*30);
}
/**
* Stores a value in a cookie. This cookie will persist for the amount
* specified in the <tt>saveTime</tt> parameter.
*
* @see #setCookie(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse,String,String)
* @param request the servlet request.
* @param response the servlet response.
* @param name a name to identify the cookie.
* @param value the value to store in the cookie.
* @param maxAge the time (in seconds) this cookie should live.
*/
public static void setCookie(HttpServletRequest request, HttpServletResponse response, String name, String value, int maxAge){
// Check to make sure the new value is not null (appservers like Tomcat
// 4 blow up if the value is null).
if (value == null) {
value = "";
}
String path = request.getContextPath() == null ? "/" : request.getContextPath();
if ("".equals(path)) {
path = "/";
}
Cookie cookie = new Cookie(name, value);
cookie.setMaxAge(maxAge);
cookie.setPath(path);
response.addCookie(cookie);
}
}
分享到:
相关推荐
字符串处理是编程中非常常见的任务,因此,一个字符串工具类会包含许多对字符串进行操作的方法。这可能包括字符串的格式化、分割、连接、查找和替换、去除空白字符、大小写转换、检查是否符合特定模式(如邮箱格式...
java 字符串工具类 java 字符串工具类java 字符串工具类 java 字符串工具类java 字符串工具类 java 字符串工具类java 字符串工具类 java 字符串工具类java 字符串工具类 java 字符串工具类java 字符串工具类 java ...
"字符串拼接工具"就是针对这类需求而设计的小型实用程序。它能够帮助开发者快速、有效地组合多个字符串,添加前缀或后缀,使得多行文本的格式化变得简单。 在编程中,字符串拼接通常是通过字符串连接运算符或者使用...
《Strings字符串分析工具详解》 在计算机领域,字符串分析是一个重要的技术手段,尤其在病毒分析、逆向工程和软件调试中扮演着不可或缺的角色。Strings工具就是这样一个强大的实用程序,它能够从二进制文件中提取出...
在IT领域,字符串转换工具是一种常见的实用程序,它允许用户在不同的编码系统之间转换文本数据。这个名为"字符串转换工具"的应用程序,正如其标题所示,专注于ASCII码、字符串以及十六进制之间的转换。这样的工具在...
在IT行业中,字符串处理工具是程序员和数据分析师日常工作中不可或缺的一部分。这些工具帮助用户进行文本操作,例如查找、替换、格式化、加密和解密等。"被爱可以字符串处理工具"显然是一款专为此目的设计的软件,它...
java 字符串截取工具类java 字符串截取工具类
字符串工具类,格式字符串、随机数生成、ip区间判断!
字符串过滤工具.字符串过滤工具.字符串过滤工具.
"string字符串自动格式化单引号分隔工具"就是一个专为简化这一任务而设计的应用。它能够自动将一个字符串按照指定的单引号进行分隔,以便于在SQL的IN查询语句中更方便地使用。 首先,我们要理解什么是字符串。在...
《MyReplace字符串替换工具详解与应用》 在日常的编程工作和文本处理中,我们经常需要对字符串进行各种操作,其中替换字符是一项基础且频繁的任务。传统的字符串替换方法可能需要手动进行十六进制转换,这无疑增加...
标题中的“Sql批量替换字符串的工具”指的是一个用于SQL数据库中进行大量文本字符串替换的程序。这类工具在数据库管理中非常实用,特别是在处理大量数据时需要统一修改特定字符串的情况。例如,如果你有一个数据库表...
"16进制字符串显示图片工具" 是一个专门用来将16进制字符串转换为可视图像的应用程序。这个工具基于C#(简称CS)语言构建,利用其丰富的库函数和面向对象的特性,实现了从16进制数据到图像的转换功能。C#中的System....
C++作为一种强大的编程语言,提供了丰富的工具和库来处理各种安全需求,其中包括字符串的加密和解密。本篇文章将详细探讨C++中用于加密字符串的技术,以及如何利用提供的代码工具进行一键生成。 一、C++中的字符串...
"字符串过滤工具类"就是针对这样的需求而设计的,它提供了一种便捷的方式来对字符串中的特定关键字进行过滤,以达到安全、合规或者优化显示的目的。下面将详细解释这个工具类的核心知识点。 首先,字符串过滤工具类...
标题中的“文件字符串一键替换工具”指的是一个软件或程序,其主要功能是帮助用户快速、批量地在指定的文件夹及其子文件夹内的所有文件中替换特定的字符串。这种工具通常用于需要大量文本编辑或者统一修改文件内容的...
在VB6(Visual Basic 6)环境中,字符串处理是一项常见的任务,而“vb6字符串替换工具”正是这样一个专为处理字符串替换问题而设计的应用程序。它提供了用户友好的界面和功能,使得程序员或普通用户能够方便地在文本...