会话技术Cookie

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);
    }

}
原文地址:https://www.cnblogs.com/asndxj/p/9874731.html