Java笔记之Web前端 :Cookie 和Session

1. 什么是会话技术

它指的是一个客户端(浏览器) 与Web服务器之间连续发生的一系列请求和响应的过程。例如在网站上购物的完整流程就是一个会话。

1.1会话场景例子

在打电话过程中,通话双方会有通话内容,同样,在客户端与服务器端交互的过程中,也会产生一些数据。例如,用
户甲和乙分别登录了购物网站,甲购买了一个Nokia手机,乙购买了一个Ipad,当这两个用户结账时,Web服务器需
要对用户甲和乙的信息分别进行保存。

1.2HttpServletRequest对象和ServletContext对象 为什么不适合?

HttpServletRequest对象和ServletContext对象
都可以对数据进行保存,但是这两个对象都不可行,具体原因如下:
(1)客户端请求Web服务器时,针对每次HTTP请求,Web服务器都会创建一个HttpServletRequest对象,该对象
只能保存本次请求所传递的数据。由于购买和结账是两个不同的请求,因此,在发送结账请求时,之前购买请求中的
数据将会丢失。(一次会话之前的请求数据会丢失)
(2)使用ServletContext对象保存数据时,由于同一个Web应用共享的是同一个ServletContext对象,因此,当用
户在发送结账请求时,由于无法区分哪些商品是哪个用户所购买的,而会将该购物网站中所有用户购买的商品进行结 (不同请求数据会共享)
算,这显然也是不可行的。
(3)为了保存会话过程中产生的数据,在Servlet技术中,提供了两个用于保存会话数据的对象,分别是Cookie和
Session。关于Cookie和Session的相关知识 。
在这里插入图片描述

1.3Servlet 的会话技术

Servlet 的会话技术主要有两种:Cookie和Session

1.3.1 Cookie

1.3.1.1 概念

浏览器端的会话技术,它通过在浏览器中记录一些服务器传递过来的数据,解决会话从什么时候开始,到什么时候结
束。 (浏览器端)

1.3.1.2 常用API

Cookie:
Cookie(String name, String value) 创建cookie对象
String getName() 获取cookie的名称
String getValue() 获取cookie的值
void setPath(String uri) 设置cookie的路径——浏览器根据这个路径判断那些cookie要发送给服
务器
HttpServletResponse:
void addCookie(Cookie cookie) 将cookie发送给浏览器
HttpServletRequest:
Cookie[] getCookies() 获取浏览器发送的cookie

1.3.1.3 API使用

代码

CookieServlet1:
Cookie:
Cookie(String name, String value) 创建cookie对象
String getName() 获取cookie的名称
String getValue() 获取cookie的值
void setPath(String uri) 设置cookie的路径——浏览器根据这个路径判断那些cookie要发送给服
务器
HttpServletResponse:
void addCookie(Cookie cookie) 将cookie发送给浏览器
HttpServletRequest:
Cookie[] getCookies() 获取浏览器发送的cookie
北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090
CookieServlet2:
package cn.itcast.web;
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;
import java.io.IOException;
@WebServlet(name = "CookieServlet1",urlPatterns = "/cookie1")
public class CookieServlet1 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
} p
rotected void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
//创建cookie
Cookie cookie = new Cookie("username","tom");
//设置cookie的路径——浏览器根据这个路径判断那些cookie要发送给服务器
cookie.setPath("/day");
//将cookie发送给浏览器
response.addCookie(cookie);
}
}

什么是有效期?
Cookie的存活时间 Cookie的默认有效期:一次会话期间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值