import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.PageContext;

/**
*
* cookie操作类
*<br>功能:对cookie进行增查改删
*/
public class CookieUitl
{
/**
* 往客户端写入Cookie。
* <pre>
* 说明:
* maxAge:(单位秒)
* 0:删除Cookie
* -1:页面关闭时删除cookie
* </pre>
* @param name String
* @param value String
* @param maxAge int
* @param context PageContext
*/
public static void addCookie(String name,String value,int maxAge,PageContext context)
{
HttpServletResponse response=(HttpServletResponse)context.getResponse();
HttpServletRequest req=(HttpServletRequest)context.getRequest();
addCookie( name, value,maxAge, req, response);
}

/**
* 写入会话cookie,在页面关闭的时候这个cookie自动删除。
* @param name cookie名称
* @param value cookie值。
* @param context
*/
public static void addCookie(String name,String value,PageContext context)
{
HttpServletResponse response=(HttpServletResponse)context.getResponse();
HttpServletRequest req=(HttpServletRequest)context.getRequest();
addCookie( name, value,-1, req, response);
}

/**
* 添加cookie,cookie的生命周期为关闭浏览器即消失
* @param name
* @param value
* @param req
* @param response
*/
public static void addCookie(String name,String value,HttpServletRequest req,HttpServletResponse response)
{
addCookie( name, value,-1, req, response);
}

/**
* 添加cookie
* @param name cookie名称
* @param value cookie值
* @param maxAge cookie存活时间
* @param req
* @param response
*/
public static void addCookie(String name,String value,int maxAge,HttpServletRequest req,HttpServletResponse response)
{
if(response==null)return;
Cookie cookie=new Cookie(name,value);
cookie.setPath(req.getContextPath());
cookie.setMaxAge(maxAge);
response.addCookie(cookie);
}

/**
* 删除cookie
* @param name
* @param context
*/
public static void delCookie(String name,PageContext context)
{
HttpServletResponse response=(HttpServletResponse)context.getResponse();
HttpServletRequest request=(HttpServletRequest)context.getRequest();
delCookie(name,request, response);
}
/**
* 删除cookie
* @param name
* @param response
*/
public static void delCookie(String name,HttpServletRequest request, HttpServletResponse response)
{
addCookie(name, "", 0, request,response);
}

/**
* 根据Cookie名取得Cookie的值.
* 如果cookie 为空 则返回 null;
* @param name String
* @param context PageContext
* @return String
*/
public static String getValueByName(String name,PageContext context)
{
HttpServletRequest request=(HttpServletRequest)context.getRequest();
String str= getValueByName(name,request);
return str;
}

/**
* 根据cookie名称取得值
* @param name
* @param request
* @return
*/
public static String getValueByName(String name,HttpServletRequest request)
{
if(request==null)return "";
Cookie cookies[]=request.getCookies();
Cookie sCookie=null;
String svalue=null;
String sname=null;

if(cookies==null)
return null;
for(int i=0;i< cookies.length;i++)
{
sCookie=cookies[i];
sname=sCookie.getName();
if(sname.equals(name))
{
svalue=sCookie.getValue();
break;
}
}
return svalue;
}

/**
* 根据Cookie名判断Cookie是否存在.
* @param name String
* @param context PageContext
* @return String
*/
public static boolean isExistByName(String name,PageContext context)
{
HttpServletRequest request=(HttpServletRequest)context.getRequest();
return isExistByName(name,request);
}

/**
*
* @param name
* @param request
* @return
*/
public static boolean isExistByName(String name,HttpServletRequest request)
{

Cookie cookies[]=request.getCookies();
Cookie sCookie=null;

String sname=null;
boolean isExist=false;
if(cookies==null)
return false;
for(int i=0;i< cookies.length;i++)
{
sCookie=cookies[i];
sname=sCookie.getName();
if(sname.equals(name))
{
isExist=true;
break;
}
}
return isExist;
}

}

CookieUitl的更多相关文章

随机推荐

  1. 云服务jdk 升级为 OpenJDK11

    由于oracle是个碧池,大家都懂,今年来,jdk版本更新的越来越频繁,所以目前商业版本需要收费了 每个企业都要考虑这样的问题,所以嘛,新项目试水肯定是要的,用openJDK11吧, https:// ...

  2. 如何免费的将本地Web服务映射到外网

    链接地址:https://hongmaju.github.io/2018/05/13/ngrok%E5%B0%86%E6%9C%AC%E5%9C%B0Web%E6%9C%8D%E5%8A%A1%E6% ...

  3. 【神经网络】Dependency Parsing的两种解决方案

    一.Transition-based的依存解析方法 解析过程:首先设计一系列action, 其就是有方向带类型的边,接着从左向右依次解析句子中的每一个词,解析词的同时通过选择某一个action开始增量 ...

  4. [转]JS判断字符串是否为json数据

    原文地址:https://blog.csdn.net/qq_26400953/article/details/77411520 这周碰到了很多问题,尽量把遇到的问题都记录下来. JS判断字符串是否为j ...

  5. C++ 非常量引用无效

    /* 非常量引用无效 */ #include <iostream> using namespace std; /* C++标准的规定:非常量的引用不能指向临时对象: 为了防止给常量或临时变 ...

  6. jquery中Get方法请求接口

    $.ajax( { url: apiUrl + '/api/Code/GetCodeProductInfo', type: 'GET', //Header头部添加Token参数 beforeSend: ...

  7. mysql关联表修改语句

    UPDATE tb_irms_trans_pip2optseg a,`tb_irms_trans_pip` b SET a.district=b.district WHERE a.prop_id=b. ...

  8. LostRoutes项目日志——玩家飞机精灵Fighter解析

    Fighter类的定义在Fighter.js中,Fighter类继承与PhysicsSprite. 原版的Fighter.js: var Fighter = cc.PhysicsSprite.exte ...

  9. iOS - UITableView中有两种重用Cell的方法

    UITableView中有两种重用Cell的方法: - (id)dequeueReusableCellWithIdentifier:(NSString *)identifier; - (id)dequ ...

  10. eclipse启动时 failed to create the java virtual machine 解决办法

    解决步骤: 1.打开eclipse解压目录下的配置文件eclipse.ini: 2.找到 --launcher.XXMaxPermSize 256M 并改为 --launcher.XXMaxPermS ...