1.会话技术
1>什么是会话技术:
从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,成为一次会话。
2>作用:
会话技术就是记录这次会话中客户端的状态与数据的。
Cookie:数据存储在客户端本地,减少服务器端的存储的压力,安全性不好,客户端 可以清除cookie
常用于购物车,cookie也可以理解为缓存,方便下次浏览。
2.Cookie技术
Cookie技术是将用户的数据存储到客户端的技术:
1>服务器端怎样将一个Cookie发送到客户端
2>服务器端怎样接受客户端携带的Cookie
3.创建一个cookie
1>服务器端向客户端发送一个Cookie
//1.手动创建一个cookie对象
Cookie cookie=new Cookie("name", "zhangsan");
//2.将coookie中存储的信息发送到客户端--请求头中
response.addCookie(cookie);
4.服务器端怎么接受客户端携带的Cookie
1>通过request获得所有的Cookie
2>遍历Cookie[]通过cookie头获得想要的cookie
CookName.equals("name")
5.设置Cookie在客户端的持久化时间
1>为什么要设置cookie的持就化时间
注意:如果不设置持久化时间,cookie会存储在浏览器的内存中,浏览器关闭 cookie信息销毁(会话级别的cookie),如果设置持久化时间,cookie信息会 被持久化到浏览器的磁盘文件里
coookie是会话级别的如果不设置持久化时间cookie的生命周期在浏览器关闭时自动销毁
2>设置方法
cookie.setMaxAge(10*60);单位秒
设置cookie信息在浏览器的磁盘文件中存储的时间是10分钟,过期浏览器 自动删除该cookie信息
6.Addcookie Getcookie完整代码
Addcookie
package com.hdh.cookie; import java.io.IOException; 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 AddCookieServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1.手动创建一个cookie对象 Cookie cookie=new Cookie("name", "zhangsan"); /*注意:如果不设置持久化时间,cookie会存储在浏览器的内存中,浏览器关闭 * cookie信息销毁(会话级别的cookie),如果设置持久化时间,cookie信息会 * 被持久化到浏览器的磁盘文件里 */ //1.1设置Cookie在客户端的持久化时间: //cookie.setMaxAge(60); //1.2为cookie设置携带的路径 //cookie.setPath("/WEB16/addcookie");//只用访问/WEB16/addcookie资源时都携带这个cookie cookie.setPath("/WEB16");//访问WEB16下面的任何资源 时都携带这个cookie //2.将coookie中存储的信息发送到客户端--请求头中 response.addCookie(cookie); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
Getcookie
package com.hdh.cookie; import java.io.IOException; 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 GetCookieServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获得客户端的cookie信息 Cookie[] cookies = request.getCookies(); // 通过cookie名称获得想要的cookie for (Cookie cookie : cookies) { //通过cookie的名称 String CookName = cookie.getName(); if (CookName.equals("name")) { //获得该cookie的值 String cookievalue = cookie.getValue(); System.out.println(cookievalue); } } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }