栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Cookie和Session

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/716577.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号