1,servlet的三大作用域:Request,Session,Application.
Request
request表示一个请求,只要发出一个请求就会创建一个request,它的作用域仅在 当前请求中有效,如果Web组件之间需要共享同一个请求中的数据,只能使用请求转发。
可用于服务器间同一请求不同页面之间的参数传递与表单的控件值传递。
常用方法:request.setAttribute();
request.getAttribute();
request.removeAttribute();
request.getParameter();
生命周期:只作用于当前一次请求。
作用范围:所有被请求转发的Servlet。
选择:跟当前操作功能相关。
Session
服务器为每个会话创建一个session对象,所以session中的数据可供当前会话中所有servlet共享。作用域:会话从用户打开浏览器开始,直到关闭浏览器才结束,一次会话期间只会创建一session对象。
一般可用于web开发中的登陆验证界面与电商网站购物车功能。
常用方法:session.setAttribute();
session.getAttribute();
session.removeAttribute();
生命周期:一次会话(多次请求)。
作用范围:所有Servlet(当前浏览器)。
选择:跟用户信息相关,如登录信息、银行账号。
Application
ServletContext在 服务器启动时创建,服务器关闭时销毁。一个JavaWeb应用只创建一ServletContext对象,所有的浏览器在访问服务器时都共享同一个ServletContext对象,ServletContext对象一般用于在多个浏览器间共享数据时使用。
Servlet中获取Application对象:
servletContext serContext = this.getServletContext();
serContext .setAttribute("name", "kaixuan");
serContext .getAttribute("name");
生命周期:项目的启动到结束。
作用范围:所有Servlet(所有浏览器都行)。
选择:跟项目全局信息相关,如:京东配送地址。