Servlet 中有三大作用域对象,application、session、request,主要目的是共享数据。
1、application(ServletContext)
该域是应用程序作用域,从程序开始运行到运行停止。
特点:保存在 application 域中的值,只要程序保持运行状态就可以获取。
实现:session.getServletContext();因此也常叫做ServletContext。
2、session
session 代表一次会话,当程序运行时,服务器会给每一个会话创建一个 session 对象,存放在 session 的数据可以被本次会话中的所有 servlet 访问,会话的开始到结束,即浏览器的打开到关闭。
特点:session 常用于登录操作,登录成功后便能得到 session 对象,如我们后续操作需要使用,必须先获取这个对象。
实现:(1)session 对象的创建:HttpSession session = request.getSession();
(2)常用方法:
session.setAttribute(String key,Object value);
session.getAttribute(String key);
session.removeAttribute(String key);
(3) session对象的销毁:session.invalidate();
3、request
request 表示一次请求,只要发出一个请求就会创建一个 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 ) | 返回指向指定路径的请求分发对象 |