java重定向后往前端cookies写信息 java重定向cookie传不过去_cookie失效时间


一. 重定向

1.定义: 重定向是服务器指导,客户端的行为 ,是最少两次请求,没有预对象不共同使用一个请求对象

2.重定向和请求转发的区别

1.重定向是客户端行为 ,请求转发是服务端跳转行为

2.重定向有最少两次请求,请求转发只有一次请求

3.重定向地址栏发生改变,请求转发不会发生改变

4.请求转发request 对象共享 ,重定向不共享

5.请求转发只能访问当前资源下的项目,重定向可以访问不同的项目(访问的地址是跟在端口下的)

二. Cookie

  1. Cookie 对象的创建 创建Cookie : Cookie cookie = new Cookie("key","value")
  2. Cookie对象的发送 发送Cookie : response.addCookie(cookie对象)
  3. Cookie对象的获取 获取Cookie : Cookie[] cookie = request.getCookie() --> 返回的 是Cookie数组

4. Cookie的存活时间 : Cookie的存活时间: Cookie对象.setMaxAge(int time) 设置为正整数为保存时间单位是秒 , 设置为0 是删除该Cookie , 如果是负数则是不保存该Cookie关闭浏览器后删除(默认选择)

三. session

1.创建session : HttpSession session = request.getsession --> 先判断session 是否存在 如果存在则使用session ,如果不存在则 创建新的session

2 .常用方法

获取session Id : 对象.getId

获取创建时间 : 对象.getCreationTime()

获取最后一次访问的时间: 对象 . lastAccessTime()

获取 是否是新创建的session : 对象.isNew()

获取最后一次访问的时间: 对象 . lastAccessTime()

获取 是否是新创建的session : 对象.isNew()

3. 预对象

在请求转发中 : request 和 session 都是有效的

在重定向中: request 预对象会失效 session 预对象是有效的

4. 存活时间

1. 关闭浏览器 (session底层是有 Cookie 实现的 默认关闭浏览器失效)

2、关闭服务器(非正常关闭服务器时才会销毁,session对象在服务器正常关闭时会钝化到本地磁盘中,下次启动时从本地磁盘中读取出来,在Tomcat解压包的waork目录下)

3、手动销毁(session.invalidate())

失效方法

1. 关闭浏览器 (session底层是有 Cookie 实现的 默认关闭浏览器失效)

2、关闭服务器(非正常关闭服务器时才会销毁,session对象在服务器正常关闭时会钝化到本地磁盘中,下次启动时从本地磁盘中读取出来,在Tomcat解压包的waork目录下)

3、手动销毁(session.invalidate())

4、服务器默认最大不活动时间

Tomcat的解压缩包下的conf目录下的web.xml中 默认30分钟,单位为分钟

5、手动设置最大不活动时间

通过 session.setMaxInactiveInterval(int);来设定 session 的最大不活动时间,单位为秒。

通过 getMaxInactiveInterval();方法来查看当前 Session 对象的最大不活动时间。

四. ServleContext

  1. 获取ServleContext方法
// 通过request对象获取
 ServletContext servletContext = request.getServletContext();
// 通过session获取
 ServletContext servletContext2 = request.getSession().getServletContext();
// 通过servletConfig对象
 ServletContext servletContext3 = getServletConfig().getServletContext();
// 直接获取
 ServletContext servletContext4 = getServletContext(); 
2. 常用方法 
// 获取项目在服务器中的真实路径
 String realPath = request.getServletContext().getRealPath("/");
// 获取服务器版本
 String serverInfo = request.getServletContext().getServerInfo();