CookieUtils 字符串常用工具



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);
}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值