String fullContentType = “application/json;charset=UTF-8”;
response.setContentType(fullContentType);//告知客户端响应正文类型
response.setHeader(“Cache-Control”, “no-cache”);//控制浏览器不要缓存

//设置允许跨域
response.setHeader(“Access-Control-Allow-Origin”,"*");
response.setHeader(“Access-Control-Allow-Credentials”,“true”);
response.setHeader(“Access-Control-Allow-Headers”, “Content-Type,token”);
response.setHeader(“Access-Control-Allow-Methods”,“PUT,POST,GET,DELETE,OPTIONS”);
request.setCharacterEncoding(“UTF-8”);
response.setCharacterEncoding(“UTF-8”)//设置编码
Cookies
1.String name:该Cookie的名称。Cookie一旦创建,名称便不可更改。 Object value:该Cookie的值。如果值为Unicode字符,需要为字符编码。如果值为二进制数据,则需要使用BASE64编码。
2.int maxAge:该Cookie失效的时间,单位秒。
如果为正数,则该Cookie在>maxAge秒之后失效。
如果为负数,该Cookie为临时Cookie,关闭浏览器即失效,浏览器也不会以任何形式保存该Cookie。
如果为0,表示删除该Cookie。默认为–1。
3.boolean secure:该Cookie是否仅被使用安全协议传输。安全协议。安全协议有HTTPS,SSL等,
在网络>上传输数据之前先将数据加密。默认为false。
4.String path:该Cookie的使用路径。如果设置为“/sessionWeb/”,则
只有contextPath为“/sessionWeb”的程序可以访问该Cookie。如果设置为“/”
,则本域名下contextPath都可以访问该Cookie。注意最后一个字符必须为“/”。
5.String domain:可以访问该Cookie的域名。如果设置为“.google.com”,则所有以“google.com”结尾的域名都可以访问该Cookie。注意第一个字符必须为“.”。
6.String comment:该Cookie的用处说明。浏览器显示Cookie信息的时候显示该说明。 int version:该Cookie使用的版本号。0表示遵循Netscape的Cookie规范,1表示遵循W3C的RFC 2109规范。
/**

  • 得到Cookie的值,
  • @author www.wityx.com
  • @param request 请求
  • @param cookieName cookie的名字
  • @return
    */
    public static String getCookieValue(HttpServletRequest request, String cookieName, boolean isDecoder) {
    Cookie[] cookieList = request.getCookies();
    if (cookieList == null || cookieName == null) {
    return null;
    }
    String retValue = null;
    try {
    for (int i = 0; i < cookieList.length; i++) {
    if (cookieList[i].getName().equals(cookieName)) {
    if (isDecoder) {
    retValue = URLDecoder.decode(cookieList[i].getValue(), “UTF-8”);
    } else {
    retValue = cookieList[i].getValue();
    }
    break;
    }
    }
    } catch (UnsupportedEncodingException e) {
    e.printStackTrace();
    }
    return retValue;
    }

/**

  • 设置Cookie的值,并使其在指定时间内生效
  • @author www.wityx.com
  • @param cookieMaxage cookie生效的最大秒数
    */
    private static final void doSetCookie(HttpServletRequest request, HttpServletResponse response,
    String cookieName, String cookieValue, int cookieMaxage, boolean isEncode) {
    try {
    if (cookieValue == null) {
    cookieValue = “”;
    } else if (isEncode) {
    cookieValue = URLEncoder.encode(cookieValue, “utf-8”);
    }
    Cookie cookie = new Cookie(cookieName, cookieValue);
    if (cookieMaxage > 0)
    cookie.setMaxAge(cookieMaxage);
    if (null != request) {// 设置域名的cookie
    String domainName = getDomainName(request);
    System.out.println(domainName);
    if (!“localhost”.equals(domainName)) {
    cookie.setDomain(domainName);
    }
    }
    cookie.setPath("/");
    response.addCookie(cookie);
    } catch (Exception e) {
    e.printStackTrace();
    }
    }

/**
*@author www.wityx.com

  • 得到cookie的域名
    */
    private static final String getDomainName(HttpServletRequest request) {
    String domainName = null;

    String serverName = request.getRequestURL().toString();
    if (serverName == null || serverName.equals("")) {
    domainName = “”;
    } else {
    serverName = serverName.toLowerCase();
    serverName = serverName.substring(7);
    final int end = serverName.indexOf("/");
    serverName = serverName.substring(0, end);
    final String[] domains = serverName.split("\.");
    int len = domains.length;
    if (len > 3) {
    // www.wityx.com
    domainName = “.” + domains[len - 3] + “.” + domains[len - 2] + “.” + domains[len - 1];
    } else if (len <= 3 && len > 1) {
    // wityx.com or 5ityx.cn
    domainName = “.” + domains[len - 2] + “.” + domains[len - 1];
    } else {
    domainName = serverName;
    }
    }

    if (domainName != null && domainName.indexOf("? > 0) {
    String[] ary = domainName.split("\?;
    domainName = ary[0];
    }
    return domainName;
    }

Cookie并不提供修改、删除操作。如果要修改某个Cookie,只需要新建一个同名的Cookie,添加到response中覆盖原来的Cookie。如果要删除某个Cookie,只需要新建一个同名的Cookie,并将maxAge设置为0,并添加到response中覆盖原来的Cookie。注意是0而不是负数。负数代表关闭浏览器,cookies即失效。

注意:修改、删除Cookie时,新建的Cookie除value、maxAge之外的所有属性,例如name、path、domain等,都要与原Cookie完全一样。否则,浏览器将视为两个不同的Cookie不予覆盖,导致修改、删除失败。

response.cookies相关推荐

  1. Response.cookies和Request.cookies

    Response.cookies和Request.cookies的区别很重要,由于方法基本都是差不多的,特别对于初学者而言,很容易出现混淆. 简单说就是创建cookie用response,获取cook ...

  2. python web开发-flask中response,cookies,session对象使用详解

    Response响应对象: 当一个web请求被服务器处理完后,会返回用户请求的响应,这时候就要用到响应对象,根据响应给用户的形式不同,响应对象有以下几种处理方式 如果返回的是一个合法的响应对象,它会从 ...

  3. ASP.NET中利用cookies保持客户端信息

    作者:未知   请作者速与本人联系 我当前所吃的东东都固定为食物,所以一点也不惊讶,这一周的主题为cookies. Cookies用于存储特定用户信息,它提供了Web程序中一种有用的方式.多年以来,J ...

  4. 爬虫之requests模块cookieJar对象转换为cookies字典的方法

    爬虫之requests模块cookieJar对象转换为cookies字典的方法 使用requests获取的resposne对象,具有cookies属性.该属性值是一个cookieJar类型,包含了对方 ...

  5. C# 中对COOKIES的操作

    HttpUtility.UrlDecode HttpUtility.UrlEncode HttpContext.Current.Request.Cookies["UserCode" ...

  6. html 获取cookie的值,js从Cookies里面取值的简单实现

    工作过程中遇到一个Js从Cookies里面取值的需求,Js貌似没有现成的方法可以指定Key值获取Cookie里面对应的值,参阅网上的代码,简单实现如下: 1. 服务端代码,Page_Load里面Coo ...

  7. 在asp.net中解决cookies中文乱码问题

    在设置cookie时,如果存入cookie中的内容为中文,则读取后变成乱码,英文或者数字不存在这种问题.解决办法是不直接存取,而是采用编码的方法进行存取. 1.设置cookie public void ...

  8. 没完没了的Cookie,读懂asp.net,asp等web编程中的cookies

    在我刚学会一点asp编程时就知道cookie了,当时照着书上的代码一通输入运行后,一切OK,就这样我自以为掌握了cookie,学javascript照样是一通代码运行成功,cookie到此为止应该是山 ...

  9. 基于cookies的小型购物车程序

    基于cookies的小型购物车程序 最近因为公司项目开发,需要一个购物车程序. 虽然网上很多,但个人很久前就想写个.于是马上动手. 代码有点多,感觉方法不怎么好! 随便post上来,高手可略过~! m ...

最新文章

  1. 功能点分析:商品类目表
  2. Collection、泛型
  3. 笔记本控制机器人方法
  4. 制造机器人的现状和发展趋势
  5. ppt流程图字体太小_简单三步,用WPS轻松完成一个又大气又好看的流程图!
  6. 包含几通道数据_温度采集,无处不测!「数据采集」
  7. 【图像处理】MATLAB:空间滤波
  8. java中的多态性_[转载] c++多态与java多态性_Java中的多态性
  9. 设置mybb论坛后台显示为中文
  10. MongoDB干货系列1-定期巡检之Mtools
  11. Flask: wsgi接口
  12. Julia: Dict类型 与 Symbol
  13. 五笔字根表识别码图_王码86版五笔字根表口诀助记词(完整大图)
  14. 分布式集群中如何保证线程安全?
  15. 行业研究方法与框架合集
  16. win7 去除快捷方式小箭头
  17. Unity 常用快捷键
  18. 授权管理-LDAP-介绍与环境搭建
  19. MATLAB SIMULINK电力电子仿真
  20. 【精要主义】软件工程师最重要的素质

热门文章

  1. SpringCloud断路器
  2. laya开发微信小游戏《奇异水族馆》之 观察者模式应用
  3. 实例解析CRC(循环冗余检验码)
  4. 视频账号剪辑批量分发系统
  5. 1045 mysql_解决Navicat for MySQL 1045错误的三种方法
  6. 二、C++ complier works 编译器如何工作工作
  7. COMFORT 美食 | 贴秋膘好去处 深秋米其林黑珍珠星级餐厅打卡指南
  8. 蒙特梭利素材制作灯笼素材蒙氏素材
  9. Neuron:背侧流中θ振荡的选择性夹带可提高听觉工作记忆表现
  10. 女硕士患绝症谱写生命绝唱 参加答辩1月后辞世