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
②返回当前响应的上下文路径<Context path = "XXXX"/>:getContextPath()
,返回为String
网友评论