创建Cookie

//使用URLEncoder.encode()编码,因为cookie不能存储中文,否则有中文会报错
String city = URLEncoder.encode("北京_BJ", "utf-8");
//创建Cookie
Cookie cookie = new Cookie("city", city);
//设置Cookie的最大生命周期,否则浏览器关闭后Cookie即失效
cookie.setMaxAge(Integer.MAX_VALUE);
//将Cookie加到response中
response.addCookie(cookie);

获取Cookie的3种方式:

JSP表达式

在jsp页面中遍历cookie,找到指定的cookie

<%String city = "";//获取所有CookieCookie[] cookies = request.getCookies();//如果浏览器中存在Cookieif (cookies != null && cookies.length > 0) {//遍历所有Cookiefor(Cookie cookie: cookies) {//找到name为city的Cookieif (cookie.getName().equals("city")) {//使用URLDecode.decode()解码,防止中文乱码city = URLDecoder.decode(cookie.getValue(), "utf-8");}}}
%>

在需要显示的位置用jsp表达式展示

<%= city %>

EL内置对象cookie

使用 ${cookie.city.value } 直接获得即可,但如果有中文的话,会出现中文乱码

${cookie.city.value }

jQuery Cookie

使用jQuery,需引入js文件:
jquery-3.2.0.jsjquery-3.2.0.min.js 官网下载链接

<script src="js/jquery-3.2.0.js"></script>

使用jQuery Cookie插件,需引入js文件: jquery.cookie.js 官网下载链接

<script src="js/jquery.cookie.js"></script>

将Cookie存的内容放到id=”city”的元素中

<script type="text/javascript">
$(document).ready(function() {//$.cookie("city") 获取name为city的Cookie的值//$("#city").val(str) 设置id="city"的元素的值为str$("#city").val($.cookie("city"));
});
</script>
<input type="text" id="city">

测试结果

测试代码

testCookie.jsp

<%@page import="java.net.URLDecoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>testCookie</title>
<script src="js/jquery-3.2.0.js"></script>
<script src="js/jquery.cookie.js"></script>
<script type="text/javascript">
$(document).ready(function() {//$.cookie("city") 获取name为city的Cookie的值//$("#city").val(str) 设置id="city"的元素的值为str$("#city").val($.cookie("city"));
});
</script>
<style type="text/css">input {width:200px;}
</style>
</head>
<body>
<%String city = "";//获取所有CookieCookie[] cookies = request.getCookies();//如果浏览器中存在Cookieif (cookies != null && cookies.length > 0) {//遍历所有Cookiefor(Cookie cookie: cookies) {//找到name为city的Cookieif (cookie.getName().equals("city")) {//使用URLDecode.decode()解码,防止中文乱码city = URLDecoder.decode(cookie.getValue(), "utf-8");}}}
%>
<form action="TestCookieServlet">
1.JSP表达式:<br>
&nbsp;&nbsp;&nbsp;<input type="text" value="<%=city %>" ><br><br>
2.EL语句:<br>
&nbsp;&nbsp;&nbsp;<input type="text" value="${cookie.city.value }"><br><br>
3.jQuery:<br>
&nbsp;&nbsp;&nbsp;<input type="text" id="city"><br><br>
&nbsp;&nbsp;&nbsp;<input type="submit" value="获取Cookie" ><br>
</form>
</body>
</html>

TestCookieServlet.java

package com.cookie.test;import java.io.IOException;
import java.net.URLEncoder;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;@WebServlet("/TestCookieServlet")
public class TestCookieServlet extends HttpServlet {private static final long serialVersionUID = 1L;protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//使用URLEncoder.encode()编码,因为cookie不能存储中文,否则有中文会报错String city = URLEncoder.encode("北京_BJ", "utf-8");//创建CookieCookie cookie = new Cookie("city", city);//设置Cookie的最大生命周期,否则浏览器关闭后Cookie即失效cookie.setMaxAge(Integer.MAX_VALUE);//将Cookie加到response中response.addCookie(cookie);//重定向到jsp页面response.sendRedirect("testCookie.jsp");}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}
}

获取cookie的3种方式相关推荐

  1. 快速获取cookie的两种方式

    方式一:通过浏览器控制台 在需要获取Cookie的谷歌浏览器界面,按Ctrl+Shift+j打开js控制台. 输入 console.log(document.cookie) 回车打印Cookies 方 ...

  2. 获取cookie的几种方式

    在爬虫中cookie是非常有用的,可以解决反爬,封号等问题.接下来我们来说说获取cookie的集中方式. 这里采用python2.7,本来我都是用python3.6的,来了公司之后,公司适用版本2.7 ...

  3. 利用requests库获取cookie的两种方式

    第一种: from fake_useragent import UserAgent import requestsdef get_Cookies0():ua = UserAgent().ie #随机获 ...

  4. aes key长度_原创 | 浅谈Shiro反序列化获取Key的几种方式

    点击"关注"了解更多信息 关于Apache Shiro反序列化 在shiro≤1.2.4版本,默认使⽤了CookieRememberMeManager,由于AES使用的key泄露, ...

  5. Spring Boot当中获取request的三种方式

    本篇博客主要记录request相关知识,也是开发当中经常遇到的,感兴趣的跟小编一起学习吧! 目录 一.请求过程 二.获取request的三种方式 2.1.可以封装为静态方法 2.2.controlle ...

  6. SpringBoot静态获取 bean的三种方式,你学会了吗?

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/showchi/article/details/97005720 注意:调用者要被spring管理 ...

  7. Spring读取配置文件,获取bean的几种方式

    Spring读取配置文件,获取bean的几种方式 方法一:在初始化时保存ApplicationContext对象 代码: ApplicationContext ac = new FileSystemX ...

  8. Spring Boot 获取 Bean 的 3 种方式!还有谁不会?

    作者 | chilx 来源 | https://blog.csdn.net/showchi/article/details/97005720 注意:调用者要被spring管理 方式一 注解@PostC ...

  9. android获取自定义属性,android 自定义控件中获取属性的三种方式(转)

    第一种方法,直接设置属性值,通过attrs.getAttributeResourceValue拿到这个属性值. (1)在xml文件中设置属性值 android:layout_width="f ...

最新文章

  1. 刚刚,Python 3.10 正式发布了,我发现了一个可怕的功能..
  2. java 8位随机数_JAVA中生成指定位数随机数的方法总结
  3. access中判断回文的代码_LeetCode 第九题 回文数
  4. Boost:align对齐的测试程序
  5. .net remoting 与webservice
  6. 查询一个ID出现2种结果的情况
  7. 实时帧数手机_ROG游戏手机评测:小老弟让我教教你什么叫电竞
  8. Spark初步 从wordcount开始
  9. python dataframe 合并乱序列表_Python数据处理--删除重复项、数值替换和表合并
  10. 802.11相关术语及其设计(二)
  11. 12.sql语句增删改查快速回顾
  12. 关于前几周项目进行的一些感受
  13. 1500页,40万字,阿里淘系技术2020技术年货来了!
  14. Linux 内核经典面试题
  15. 软考系统集成项目管理工程师重要知识点
  16. idc机房安装服务器系统,IDC机房运维之(硬件篇)
  17. 夏天想美美的出门?店湾妹的“明星穿搭教科书”,很美有木有?
  18. 合肥工业大学 OnlineJudge——1003 B-黑石部落
  19. QT将10进制转换为2进制与16进制
  20. Apple 公司开发者账号注册

热门文章

  1. python中deepcopy_如何在Python中“覆盖”deepcopy?
  2. Z-BlogPHP资源站源码整站打包/带会员中心积分签到功能
  3. 云顶之弈游戏9.16护卫骑士恶魔流阵容游戏策略[多地图]
  4. qq农场,数据抓包分析,实现源码,图片讲解
  5. Ccf跳一跳java,CCF跳一跳Java(201803CCF第1题)
  6. 正则表达式完美匹配a链接
  7. Win32汇编--如何使用资源 [菜单和加速键]
  8. 2011年第七届“博创杯”全国大学生嵌入式设计大赛大赛命题
  9. finalshell下载、安装、连接Linux系统教程(官网)
  10. 中国股市最笨的赚钱方法:轻松在股市赚钱!