不同点:两者都用来跟踪客户端身份
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;iSession:
服务器会给每一个用户(浏览器)分配一个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欢迎分享,转载请注明来源:内存溢出
评论列表(0条)