cookie默认有效期多长_servlet学习之请求转发,cookie,session

cookie默认有效期多长_servlet学习之请求转发,cookie,session_第1张图片

什么时候需要请求转发?

当一次请求需要多个servlet的联动操作,第一个servlet需要用到其他servlet已经声明的逻辑代码处理时,需要使用请求转发

请求转发的本质是什么?

在一个servlet中调用其他servlet

转发的特点

① 降低servlet之间的代码的冗余

② 一次请求转发内的servlet共享此次request和response对象

③ 地址栏信息不改变

request对象作为请求转发的数据的载体的方法是什么

SetAttribute()存储getAttribute()获取removeAttribute()删除

request作用域的特点

请求转发,一次请求中的所有 Servlet

为什么需要cookie

cookie能解决了公共数据共享的问题

cookie的特点是什么

如果不设置有效期则默认存储在浏览器的内存中,浏览器关闭即失效,若设置了有效期,则存储到客户端的硬盘里,到期后自动销毁

如果不设置有效路径则任意项目路径的请求存储cookie信息,如果设置了有效路径则只有在该路径下的请求才会附带设置cookie信息

session的理解及其作用

用户使用浏览器第一次向服务器发送请求,服务器在接受到请求后,调用对应的 Servlet 进行处理。在处理过程中会给用户创建一个 session 对象,用来存储用户请求处理相关的公共数据,并将此 session 对象的 JSESSIONID 以 Cookie 的形式存储在浏览器中(临时存储,浏览器关闭即失效)。用户在发起第二次请求及后续请求时,请求信息中会附带 JSESSIONID,服务器在接收到请求后,调用对应的 Servlet 进行请求处理,同时根据 JSESSIONID 返回其对应的 session 对象。

如何保证不同请求获取到同一个session对象

在服务器端创建session对象时,会在浏览器端以cookie的形式存储一个标识符(id)

用户在第二次请求时,请求信息中会附带这个标识符(id)。以便调用相应的sevlet进行处理,同时根据标识符,返回相应的session对象

获取session对象的id的方法是什么?

session.getId()

session使用流程

1、 浏览器发起请求到Aservlet,在AServlet中使用req.getSession()获取Session对象,如果此次请求中没有SessionID则创建一个新的Session对象,如果有SessionID则将其对应的Session对象返回(前提是该session对象没有到期),如果session

对象到期销毁了,就算有sessionID也会重新创建一个Session。

2、校验session是否失效,存储数据到session对象中或者获取session中的数据或者删除session中的数据

session的特点

不同用户请求数据共享的问题

session的作用域

session的作用域:浏览器不关闭或者session不失效,则同一用户的任意请求获取的都是同一个session

session的默认有效期?怎么设置session的有效期

默认30分钟

通过Session.setMaxInactiveInterval设置

怎么强制销毁session

调用Session.invalidate();

方法

你可能感兴趣的:(cookie默认有效期多长,servlet)