Servlet中的Cookie和Session,ServletContext对象

88 阅读2分钟

Cookie是浏览器访问服务器是所携带的一小段数据.这里直接上代码来演示一下.

image.png Cookie是我们在访问服务器时,服务器给我们设置的信息,所以是使用response对象来设置,而不是request对象.

里面的setPath函数,是设置哪一个路径下设置Cookie.比如,如图所示设置了/myproject,那么访问这个路径下面的所有资源都会携带刚才设置好的Cookie.

Cookie的生命周期:生成一个cookie对象代表一个cookie的产生,cookie的消亡要么是关闭浏览器,要么等手动设置的有效期失效.

setMaxAge函数是设置cookie的有效期,默认是<0,也就是当浏览器关闭即失效,如果手动设置了有效期,那么就算浏览器关闭还是会有cookie信息.

image.png 上文说到cookie是服务器设置的存储在浏览器中的一小段信息,所以我们需要使用request对象来读取它.

Session指的是在一段时间内,单个客户端与Web服务器的一连串相关的交互过程。直接用代码演示.

image.png 服务器会为每一次会话分配一个Session对象,同一个浏览器发送的多次请求属于同一次会话,session是依赖Cookie实现的.注意图中的销毁session是把一个session对象销毁了,然后重新分配一个新的session对象.

session的生命周期:第一次使用session请求则会创建一个session对象,结束要么浏览器关闭,要么session会话超时.

ServletContext对象是一个全局对象,对应一个Tomcat中的web应用,不管你使用的是什么浏览器,也不管访问那个页面,这个ServletContext对象都是可以访问到的,是一个全局共享对象.

SerlvetContext生命周期:在Web服务器启动时创建,在服务器关闭时销毁.

存储数据: servletContext.setAttribute("name", value); 获取数据: servletContext.getAttribute("name"); 移除数据: servletContext.removeAttribute("name");

image.png