Request作用域
当请求从一个action转发到一个jsp的时候,如果jsp中要使用action类中的变量,那么我们需要将action中的变量放入到request作用域中传给jsp。那么jsp中就可以通过request作用域获取到该变量。
例如:登陆成功后需要在成功页面显示人员信息。
Request对象类似于一个map集合。放数据的时候,放入键值对,取数据时通过键取值。
request.setAttribute(key,value);//往request作用域里面放入数据。
request.getAttribute(key);//从requtest作用域里面获取数据。
所有的作用域都有上面的两个方法。
Request作用域的特点:
放数据的servlet和取数据的servlet必须保证使用的是同一个request对象。一旦request对象改变了,那么,request作用域里面的值就会失效。
session作用域
session.setAttribute(key,value);//到session作用域放数据
session.getAttribute(key);//从session作用域获取数据
session.removeAttibute(key);//从session作用域里面移除数据。
Application作用域:ServletContext
Application作用域:ServletContext
ServletContext的总结:
1.ServletContxt就是对web.xml文件的封装。
2.一个项目中只有一个web.xml文件。
3.ServletContext对象在一个项目中只有一个。
ServletContext作用域:
sc.setAttribute(key,value);把变量放入作用域
sc.getAttribute(key);从作用域里面获取变量
sc.removeAttribute(key);从作用域里面移除对象。
三大作用域的比较
request,session,application(ServletContext)
Request作用域的范围最小,对应一次请求。
Session作用域的范围要大一些。对应一次会话。只要浏览器不关就是一个session。
**Application作用域的范围最大。对应一个应用程序。**不管有多少个浏览器,只要访问的是同一个项目,那么他们对应的就是一个application对象。
Application对象跟一个项目相关,他会在tomcat启动的时候被创建,tomcat关闭的时候被销毁。