cookie是存储在客户端用户计算机中的一小块信息,通常以名称/值形式的字符串进行存储。web服务器在下次访问时通过cookie标识用户。
名称/值
每次用户访问启用了cookie的网站时,web服务器在响应web浏览器时都会将额外的数据添加到HTTP头中。下次用户再次访问同一站点时,web浏览器会在HTTP请求头中向web服务器发送这个cookie。
当然用户也可以在web浏览器中禁用cookie。
JSP提供了javax.servlet.http.Cookie类API来使用cookie。
javax.servlet.http.Cookie
<%
@page
import
=
"javax.servlet.http.Cookie"
%>
contentType=
"text/html"
pageEncoding=
"UTF-8"
<!DOCTYPE html>
<html>
<head>
<title>JSP 设置 Cookie</title>
</head>
<body>
Cookie cookie =
new
Cookie(
"ClientID"
,
"JSP jiaocheng theitroad."
);
cookie.setMaxAge(
3600
response.addCookie(cookie);
</body>
</html>
我们创建了一个新的cookie。并设置cookie的过期时间为3600秒。 如果没有设置,则当用户关闭web浏览器时,cookie将会被删除。最后,将cookie添加到响应http头中。此外,我们还可以使用setDomain()和setPath()等方法限制能有效读取cookie的doamin和URL路径。
要从客户端的HTTP请求中读取cookie,首先调用请求对象request的getCookies()方法。此方法将返回在请求头中的cookie列表,然后你就可以遍历所有cookie。
request
getCookies()
<title>JSP 读取 Cookie</title>
Cookie[] list = request.getCookies();
if
(list !=
null
){
for
(
int
i =
0
; i < list.length;i++){
out.println(list[i].getName() +
":"
+ list[i].getPath());
}
如果想删除已经发送到web浏览器的cookie, 你可以使用setMaxAge()方法重新把cookie对象的过期时间设置为0。
setMaxAge()
例如,删除客户端的所有的cookie
<title>Removing existing cookie</title>
) {
; i < list.length; i++) {
list[i].setMaxAge(
" cookie 已删除 "
原文链接:https://codingdict.com/