Servlet三大作用域:Request、Session、Application

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

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关闭的时候被销毁。

猜你喜欢

转载自blog.csdn.net/MacWx/article/details/92414302