2022/3/18
一、会话技术
1.会话:一次会话中包含多次请求和响应。
* 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止
2.功能:在一次会话的范围内的多次请求间,共享数据
3.方式:
1.客户端会话技术:Cookie(将数据存放在客户端)
2.服务器端会话技术:Session(将数据存放在服务器端)
1.Cookie:
1.概念:客户端会话技术,将数据保存到客户端2.快速入门:
*使用步骤:
1.创建Cookie对象,绑定数据
* new Cookie(String name ,String value)
2.发送Cookie对象
* response.addCookie(Cookie cookie)
3.获取Cookie,拿到数据
* Cookie[ ] request.getCookies()package ln.webtest.day01.demo03; 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("/cookieDemo01") public class CookieDemo01 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1.创建Cookie对象,绑定数据 Cookie msg = new Cookie("msg", "123"); //2.发送Cookie对象 response.addCookie(msg); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } }
package ln.webtest.day01.demo03; 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("/cookieDemo02") public class CookieDemo02 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获取Cookie,拿到数据 Cookie[] cookies = request.getCookies(); //遍历cookie数组 if(cookies != null){ for (Cookie cookie : cookies) { String name = cookie.getName(); String value = cookie.getValue(); System.out.println(name+":"+value); } } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } }
3.实现原理
* 基于响应头set-cookie和请求头cookie实现
服务器响应浏览器,把cookie的键值对给浏览器
浏览器请求服务器,会带上cookie的键值对4.cookie的细节
1.一次可不可以发送多个cookie?
* 可以
* 可以创建多个Cookie对象,使用response调用多次addCookie方法发送cookie即可
2.cookie在浏览器中保存多长时间
1.默认情况下,当浏览器关闭后,Cookie