request的使用
request是表示一个请求,只要发出一个请求就会创建一个request,它的作用域只在当前的的请求生效,通常在两个servlet之间通过请求转发来实现属性的传递与共享。
常用的方法:
- 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 ) 返回指向指定路径的请求分发对象
session的使用
服务器会为每个会话创建一个session对象,所以session中的数据可供当前会话中所有servlet共享
用户打开浏览器时表示会话开始,关闭浏览器时,表示会话结束。
在这之间只会创建一个session对象
常用的方法:
- void setAttribute(String key, Object value) 以key/value的形式保存对象值
- Object getAttribute(String key) 通过key获取对象值
- void removeAttribute(String key) 从session中删除指定名称(key)所对 应的象
ServletContext的使用
一个项目只有一个ServletContext对象,也就是说可以从多个servlet中获取这唯一一个对象,使它给多个servlet传递多个数据,ServletContext在服务器启动时创建,在服务器关闭时销毁。
常用的方法:
- void setAttribute (String name, Object object ) 设置名称为name的属性
- Object getAttribute (String name ) 获取名称为name的属性
- String getRealPath (String path ) 返回参数所代表目录的真实路径
总结
- request的域是在一次请求中创建,在下一次请求前销毁
- session的域是一个用户在使用浏览器是创建,在关闭浏览器是销毁