JavaWeb_Cookie
程序员文章站
2022-06-28 07:51:11
1.什么是CookieCookie是一种会话技术,它用于将会话过程中的数据保存到用户浏览器中,从而使浏览器与服务器更好的进行数据交互。服务器像客户端发送Cookie时,会在HTTP响应头字段中增加Set-Cookie响应头字段当用户第一次访问服务器时,服务器会在响应响应头字段中增加Set-Cookie响应头字段,将用户信息以Cookie的形式发送给浏览器,一旦浏览器接受了服务器的Cookie信息,就会把它保存到浏览器的缓冲区中,这样在后续的访问中,都会讲用户信息以Cookie的形式发送给Web浏...
1.什么是Cookie
Cookie是一种会话技术,它用于将会话过程中的数据保存到用户浏览器中,从而使浏览器与服务器更好的进行数据交互。
服务器像客户端发送Cookie时,会在HTTP响应头字段中增加Set-Cookie响应头字段
当用户第一次访问服务器时,服务器会在响应响应头字段中增加Set-Cookie响应头字段,将用户信息以Cookie的形式发送给浏览器,一旦浏览器接受了服务器的Cookie信息,就会把它保存到浏览器的缓冲区中,这样在后续的访问中,都会讲用户信息以Cookie的形式发送给Web浏览器。从而使服务器端分辨出当前那个请求是由那个用户发出的
2.CookieAPI
(1)构造方法
public Cookie(java.lang.String name,java.lang.String value)
(2)Cookie常用方法
方法声明 | 功能描述 |
String getName() | 返回Cookie名称 |
void setValue(String newValue) |
用于为Cookie设置一个新值 |
String getValue() | 用于返回Cookie的值 |
void setMaxAge(int expiry) | 用于设置Cookie在浏览器客户机上的有效时间单位秒数 |
int getMaxAge() |
用于返回Cookie在浏览器客户机上的有效时间单位秒数 |
void setPath(String url) |
用于设置该Cookie项的有效目录路径 |
String getPath() |
用于返回该Cookie项的有效目录路径 |
void setDomian(String pattern) | 用于设置该Cookie项的有效域 |
String getDomian() | 用于返回该Cookie项的有效域 |
void setVersion(int v) | 用于设置该Cookie项采用的协议版本 |
int getVersion() | 用于返回该Cookie项采用的协议版本 |
void setComment(String purpose) | 用于设置该Cookie项的注解部分 |
String getComment() | 用于返回该Cookie项的注解部分 |
void setSecure(boolean flag) | 用于设置该Cookie项是否只能使用安全的协议传送 |
boolean getSecure | 用于返回该Cookie项是否只能使用安全的协议传送 |
例子:Cookie实现显示用户上次访问时间
TestCookie.java
package servletCookie;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TestCookie extends HttpServlet{
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException {
// 指定输出编码格式
resp.setContentType("text/html;charset=utf-8");
String lastAccessTime =null;
//获取所有的Cookie,并将Cookie存放在数组中
Cookie[] cookies =req.getCookies();
for (int i = 0;cookies !=null && i < cookies.length; i++) {
// 判断是否存在名称为;lastAccess的Cookie名称,则获取该Cookie的值
if("lastAccess".equals(cookies[i].getName())) {
lastAccessTime = cookies[i].getValue();
break;
}
}
if(lastAccessTime ==null) {
resp.getWriter().print("您是首次访问本站");
}else {
resp.getWriter().print("您上次的访问时间是:"+lastAccessTime);
}
String currentTime=new SimpleDateFormat("yyyy-MM-dd#hh:mm:ss").format(new Date());
Cookie cookie =new Cookie("lastAccess",currentTime);
System.out.println(lastAccessTime);
resp.addCookie(cookie);
}
}
web.xml配置
<servlet>
<servlet-name>TestCookie</servlet-name>
<servlet-class>servletCookie.TestCookie</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestCookie</servlet-name>
<url-pattern>/TestCookie</url-pattern>
</servlet-mapping>
本文地址:https://blog.csdn.net/weixin_45460315/article/details/111991423