欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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