日期:2014-05-20 浏览次数:20805 次
HttpServletResponse rep = ServletActionContext.getResponse() ; Cookie nameCookie = new Cookie("loginname",LoginName); nameCookie.setMaxAge(60); rep.addCookie(nameCookie);
HttpServletRequest req=ServletActionContext.getRequest(); Cookie[] cks = req.getCookies(); String loginname=""; for(Cookie ck :cks) { if("loginname".equals(ck.getName())){ loginname=ck.getValue(); } System.out.println(ck.getValue()); System.out.println(ck.getName()); } System.out.println(cks.length); System.out.println("$$$$$$$$$$$ cookie-- name:" + loginname );
import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class CookieUtil { /** * 通过cookie name获取一组cookie * @param request * @param name * @return */ public static Cookie getCookie(HttpServletRequest request, String name) { Cookie cookies[] = request.getCookies(); if (cookies == null || name == null || name.length() == 0) return null; for (int i = 0; i < cookies.length; i++) { if (name.equals(cookies[i].getName())) { // && request.getServerName().equals(cookies[i].getDomain())) { return cookies[i]; } } return null; } /** * 通过cookie name 读取 value * @param request * @param name * @return */ public static String readCookie(HttpServletRequest request, String name) { String value = null; try { Cookie cookies[] = request.getCookies(); if (cookies == null || name == null || name.length() == 0) return null; for (int i = 0; i < cookies.length; i++) { if (name.equals(cookies[i].getName())) { // && request.getServerName().equals(cookies[i].getDomain())) { value = URLDecoder.decode(cookies[i].getValue(), "UTF-8"); return value; } } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return null; } /** * 删除cookie * @param request * @param response * @param cookie */ public static void deleteCookie(HttpServletRequest request, HttpServletResponse response, Cookie cookie) { if (cookie != null) { cookie.setPath(getPath(request)); cookie.setValue(""); cookie.setMaxAge(0); response.addCookie(cookie); } } /** * 通过cookie name 删除一组cookie * @param request * @param response * @param name */ public static void deleteCookie(HttpServletRequest request, HttpServletResponse response, String name) { deleteCookie(request, response, getCookie(request, name)); } /** * 设置新的cookie ,默认时间是0x278d00(一个月) * @param request * @param response * @param name * @param value */ public static void setCookie(HttpServletRequest request, HttpServletResponse response, String name, String value) { setCookie(request, response, name, value, 0x278d00); } /** * 设置新的cookie,maxAge为默认值,cookie仅仅保存在浏览器进程中 * @param request * @param response * @param name * @param value * @param maxAge */ public static void setCookie(HttpServletRequest request, HttpServletResponse response, String name, String value, int maxAge) { Cookie cookie = new Cookie(name, value == null ? "" : value); // cookie.setMaxAge(maxAge); //设置cookie生命周期,单位秒(365*24*60*60 一年),如果设置为负值的话,则为浏览器进程Cookie(内存中保存),关闭浏览器就失效。默认为-1 cookie.setPath(getPath(request)); //-设置Cookie适用的路径。如果不指定路径,Cookie将返回给当前页面所在目录及其子目录下的所有页面。 //-这里的方法可以用来设定一些更一般的条件。例如,setPath("/"),此时服务器上的所有页面都可以接收到该Cookie。 response.addCookie(cookie); } /** * 私有方法 * 获取项目路径,如/nc_System * @param request * @return */ private static String getPath(HttpServletRequest request) { String path = request.getContextPath(); return (path == null || path.length() == 0) ? "/" : path; } }