servlet context:类似于系统的全局变量,用于实现Web应用中的资源共享。
ServletContext 对象由服务器进行创建,一个项目只有一个对象。不管在项目的任意位置进行获取得到的都是同一个对象,那 么不同用户发起的请求获取到的也就是同一个对象了,该对象由 用户共同拥有。
常用方法:
ServletContext getServletContext( ) 获得servlet容器对象
void setAttribute (String name, Object object ) 用容器对象利用键值对保存数据
Object getAttribute (String name ) 用容器对象取出数据
String getRealPath (String path ) 返回项目路径
作用域:在一个应用服务器范围内有效(当前项目的所有页面)。由于所有servlet共享容器,所以在里面存放的数据并不安全。
session:用于记录会话状态的相关信息。
服务器在运⾏时可以为每⼀个⽤户的浏览器创建⼀个其独享的session对象,注意是默认情况下,⼀个浏览器独占⼀个session,由于session为⽤户浏览器独享,所以⽤户在访问服务器的web资源时,可以把各⾃数据存放在各⾃的session中,当⽤户再去访问服务器的其他web资源时,其他web资源再从⽤户各⾃的session中取出数据为⽤户服务。
session的生命周期
1. session 生命时间超时了 默认30分钟
2. 当浏览器关闭的时候,获取不到之前的session对象 、 不同的浏览器请求服务器后获得不同的session对象(登录人的信息)
3. 服务器异常或者关闭或者重启 session对象也会被销毁
4. 用户主动的《安全退出》session 失效
常用方法:
String getId() 获取sessionid
void setMaxInactiveInterval(int interval) 设定session的非活动时间
int getMaxInactiveInterval() 获取session的有效非活动时间(以秒 为单位)
void invalidate() 设置session对象失效
void setAttribute(String key, Object value) 以key/value的形式保存对象值
Object getAttribute(String key) 通过key获取对象值
void removeAttribute(String key) 从session中删除指定名称(key)所对 应的对象
作用域:在一次会话范围内容有效(session的生命周期内)。
request:主要用于处理客户端请求的数据信息
常用方法:
Object getAttribute ( String name ) 获取名称为name的属性值
void setAttribute (String name, Object object ) 在请求中保存名称为name的属性
void removeAttribute (String name) 清除请求中名字为name的属性
String getCharacterEncoding ( ) 返回请求体所使用的字符编码
void setCharacterEncoding (String charset ) 设置请求体的字符编码
String getParameter ( String name ) 返回指定请求参数的值
String[ ] getParameterValues (String name ) 返回指定请求参数的全部值(页面的多选项时)
RequestDispatcher getRequestDispatcher( String path ) 返回指向指定路径的请求分发对象(转发)一般带着请求和响应一起转发forward(request, response)
Cookie[ ] getCookies( ) 返回客户端在此次请求中发送的所有cookie对象 获得浏览器发送的cookie
HttpSession getSession( ) 返回和此次请求相关联的session,如果没有给客户端分配session, 则创建一个新的session 获得session对象