servlet作用域对象

servlet三大作用域对象:request、session、application
目的:共享数据

作用域对象如何共享数据:
  • 设置作用域中的共享数据:作用域对象.setAttribute(String name,Object value);
  • 获取作用域中的共享数据:Object value = 作用域对象.getAttribute(String name);
  • 删除作用域中指定的共享数据:作用域对象.removeAttribute(String name);

注意点:在哪个作用域中设置共享数据,就只能从该作用域中取出数据。

1. request

每一次请求都是一个新的request对象,如果在web组件之间需要共享同一个请求中的数据,只能使用请求转发。

2. session

每一次会话都是一个新的session对象,如果需要在一次会话中多个请求之间需要共享数据,只能使用session。

3. application

应用对象,tomcat启动到tomcat关闭,表示一个应用,在一个应用中有且只有一个application对象,作用于整个web应用,可以实现多次会话之间的数据共享。

ServletContext接口:
表示web应用对象,从tomcat启动到tomcat关闭之间,应用中有且只有一个ServletContext对象,而且是在tomcat启动的时候就创建的,所以在jsp中把该对象称之为application

获取ServletContext对象:
①在servlet类中:super.getServletContext();
②通过请求对象来获取:request.getServletContext();(该方法从tomcat7次才开始存在)
③通过session对象来获取:request.getSession().getServletContext();
注意点:无论是哪一种方式,获取的都是同一个ServletContext对象

对象常用方法:
①根据一个资源的相对web根的路径,获取它的绝对路径:getRealPath(String path),返回为String
②返回当前响应的上下文路径getContextPath(),返回为String

你可能感兴趣的:(servlet作用域对象)