Cookie和Session

Cookie和Session,第1张

Cookie和Session 相同点:

两者都用来跟踪客户端身份

不同点:

1、数据存储位置:cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、安全性:cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。

3、服务器性能:session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。

4、数据大小:单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

5、信息重要程度:可以考虑将登陆信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中。

注意:

cookie:

    cookie有效期时间设为0的话每次关闭会话就清除cookie一个cookie只能保存一个信息(一个键值对)
    cookie c=new cookie(String,String)浏览器cookie有上限(300)
    cookie把数据写给浏览器,浏览器来保存第一次访问,服务器给用户发送一个cookie,下次访问时携带cookie访问,便知道是否首次访问
package com.csf.cookie;

import javax.servlet.ServletException;
import javax.servlet.http.cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;


public class cookie1 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        PrintWriter out = resp.getWriter();
        cookie[] cookies = req.getcookies();;
        if (cookies!=null){
            out.println("欢迎你再次访问本网站,您上次访问时间为:");
            for (int i=0;i 

Session:

    服务器会给每一个用户(浏览器)分配一个Session对象,给一个唯一不变(再关闭会花前)的ID(服务器创建可通过Maven配置session失效时间,分钟为单位Session把用户数据写道Session中,服务器保存访问服务器是登记SessionID,返回给用户,存储东西时用服务器中的Session,所以不同用户中的ID不同所看到的存储数据也不同
	 req.setCharacterEncoding("UTF-8");
        resp.setCharacterEncoding("UTF-8");

        HttpSession session = req.getSession();
        session.setAttribute("name","lqt");	 	由session写入数据
        PrintWriter writer = resp.getWriter();
        if (session.isNew()){
            writer.println("已经创建了ID:"+session.getId());
        }else {
            writer.println("创建了ID:"+session.getId());
        }

		String name = (String) session.getAttribute("name"); 		获得键值对的值
        PrintWriter writer = resp.getWriter();
        writer.println(name);
        
        String name = (String) session.getAttribute("name");
        session.removeAttribute(name);		移除相应的键值对
        session.invalidate();				手动关闭Session

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5713215.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存