asp.net 获取客户端cookie_技术点Cookie

本文详细介绍了Cookie的概念、创建方法以及服务器如何获取和查找客户端Cookie。通过实例展示了在ASP.NET环境下创建、发送和获取Cookie的步骤,包括创建Cookie对象、通知客户端保存以及使用CookieUtils工具类查找特定键值的Cookie。
摘要由CSDN通过智能技术生成

f8bf328b339ea9595e341d7771c6502e.png

一、什么是 Cookie? 拉勾IT课小编为大家分解

1、Cookie 翻译过来是饼干的意思。

2、Cookie 是服务器通知客户端保存键值对的一种技术。

3、客户端有了 Cookie 后,每次请求都发送给服务器。

4、每个 Cookie 的大小不能超过 4kb

二、如何创建 Cookie

2.1、创建Cookie的流程

326840a7d8a38c06841cfa7510d9cd2e.png

2.2、具体操作

①创建一个JavaEE工程

99a1665e1e3cf785e4e2545a1c6db17c.png

② 将cookie的演示文件拷贝到web目录下

71e7d3f6f494280b5f3837a4a7856f56.png

d5fce705604dbe73781a7c7d5042293c.png

③ 创建一个包用来存放Servlet程序

8eb409e70989867e59946f38ba2ec11e.png

④ 将BaseServlet拷贝到创建的包下

edb7ace4fd62065a8061f4dc785bf8f4.png

⑤ 创建CookieServlet程序

package com.zixue.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* @author Mr Guo
* @create 2020-11-16 14:49
*/
public class CookieServlet extends BaseServlet{
protected void createCookie(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1.创建Cookie
Cookie cookie = new Cookie("key1", "value1");
//2.通知客户端保存Cookie
resp.addCookie(cookie);
//1.创建Cookie
Cookie cookie1 = new Cookie("key2", "value2");
//2.通知客户端保存Cookie
resp.addCookie(cookie1);
resp.getWriter().write("Cookie创建成功");
}
}

⑥ 修改cookie.html页面中创建Cookie的地址

21fcb6abcbe1489f9222cd9ee766bc06.png

⑦解决响应中文乱码问题

caa12ba9db9d815f9d7ef0f280608951.png

⑧ 启动项目,浏览器访问cookie.html页面

719261ac989aef4c04eb746cad4cbc6b.png

三、服务器如何获取 Cookie

  服务器获取客户端的 Cookie 只需要一行代码:req.getCookies():获取到一个Cookie[]数组。

3.1、获取流程

316f70e4c1599de90c752dbda136eede.png

3.2、具体操作

① 在CookieServlet程序中创建getCookie方法用于获取Cookie

protected void getCookie(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Cookie[] cookies = req.getCookies();
for (Cookie cookie : cookies) {
//getName方法返回Cookie的key
//getValue方法返回Cookie的value
resp.getWriter().write("Cookie[" + cookie.getName() + "=" + cookie.getValue() + "]<br/>");
}
}

② 修改cookie.html页面获取Cookie的访问地址

261eded1bd70a1a5f54a27ba4d3a7529.png

③ 浏览器访问

018234458c6661a1954595847d9693fb.png

3.3、获取某个key的Cookie

  有时候,我们要获取某个特定的Cookie,比如key1,而这种情况开发中很长见,具体操作如下:

① 创建CookieUtils工具类

316f70e4c1599de90c752dbda136eede.png

② 声明一个方法,用来查找指定名称的Cookie对象

public class CookieUtils {
/**
* 查找指定名称的Cookie对象
* @param name
* @param cookies
* @return 如果返回null,表示没有这个名称对应的Cookie对象,否则就是找到了指定名称的cookie对象
*/
public static Cookie findCookie(String name, Cookie[] cookies){
if (name == null || cookies == null || cookies.length == 0){
return null;
}
for (Cookie cookie : cookies) {
if (name.equals(cookie.getName())){
return cookie;
}
}
return null;
}
}

③ CookieServlet程序中查找指定的Cookie对象

protected void getCookie(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Cookie[] cookies = req.getCookies();
Cookie iWantCookie = CookieUtils.findCookie("key1", cookies);
if (iWantCookie != null){
resp.getWriter().write("找到了需要的Cookie");
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值