HttpSession对象和内置对象Session是同一个东西吗?
什么是HttpSession对象?
HTTPSession是Java平台对session机制的实现规范,因为它仅仅是个接口,具体到每个web应用服务器的提供商,除了对规范支持之外,仍然会有一些规范里没有规定的细微差异。
HTTPSession对象将在用户第1次访问服务器时由容器创建(只有访问JSP、Servlet等程序时才会创建,只访问HTML、image等静态资源并不会创建),当用户调用其失效方法(invalidate()方法)或超过其最大不活动时间时会失效。在会话有效期间,用户与服务器之间的多次请求都属于同一个会话。
什么是内置对象session?
session对象是属于JSP的内置对象。浏览器与Web服务之间使用HTTP协议进行通信。HTTP是一种无状态协议,客户端向服务器发出请求,服务器返回响应,连接就被关闭了,在服务器端不保留连接的相关信息,所以服务器必须采取某种手段来记录每个客户端的连接信息。所以Web服务器可以使用内置对象session来存放有关连接信息, session对象类型为java.servlet.http.HttpSession,session对象是指客户端和服务器端的一次会话,从客户端连到服务器端的一个Web应用程序开始,知道客户端与服务端断开为止。
两者的联系
Session是对HttpSession的实现。HTTPSession需要一系列的参数来控制它的实现,包括使用cookie的开关选项,使用URL重写的开关选项,session持久化的设置,session失效时间的设置,以及针对cookie的各种设置,比如设置cookie的名字、路径、域, cookie的生存时间等。