cookie和session的区别

Cookie(客户端,不是很安全)

  1. Cookie是由服务端创建,由若干个键值对组成的数据,并且随着响应以文件的形式将Cookie数据保存在客户端本地。当浏览器再次访问服务器时会携带Cookie数据,从而实现多次请求的数据共享。
  2. 作用:可以保存客户端访问网站的相关内容,从而保证每次访问时先从本地缓存中获取,以提高效率
  3. Cookie的使用,数量限制,每个网站最多20cookie,大小不超过4kb,所有网站的cookie不超过300

Session(服务端,安全)

第一次请求的时候,服务器会创建一个带有id的Session的对象,然后服务器会把session的id以cookie的形式发送给客户端,第二次请求的时候根据id判断是否是同一个session对象,从而实现数据共享。

转发和重定向

  1. 转发:服务端行为,地址不变,数据共享,效率高
  2. public void forward(HttpServletRequest req, HttpServletResponse resp)
  3. 转发的特点:forward
  4. 1. 转发地址栏路径不变
  5. 2. 转发只能访问当前服务器下的资源
  6. 3. 转发是一次请求,可以使用request对象来共享数据
  7. 重定向:客户端行为,地址发送改变,数据不共享,效率低
  8. resp.sendRedirect(req.getContextPath()+"/servletDemo07");
  9. 重定向的特点:redirect
  10. 1. 地址栏发生变化
  11. 2. 重定向可以访问其他站点(服务器)的资源
  12. 3. 重定向是两次请求。不能使用request对象来共享数据

Servlet的生命周期

实例化——>初始init——>接收请求service——>销毁destroy;