JSP中四个域对象
四个域对象:
pageContext | page域 |
---|---|
request | request域 |
session | session域 |
application | context域 |
-
域对象作用:
保存数据 和 获取数据 ,用于数据共享。 -
域对象方法:
setAttribute(“name”,Object) 保存数据
getAttribute(“name”) 获取数据
removeAttribute(“name”) 清除数据 -
域对象作用范围:
page域: 只能在当前jsp页面中使用(当前页面)
request域: 只能在同一个请求中使用(request.getRequestDispatcher(“B.jsp”).forward(request, response);)
session域: 只能在同一个会话(session对象)中使用(私有的)
context域: 只能在同一个web应用中使用。(全局的)
- 如果把变量放到pageContext里,就说明它的作用域是page,它的有效范围只在当前jsp页面里。 从把变量放到pageContext开始,到jsp页面结束,你都可以使用这个变量。
- 如果把变量放到request里,就说明它的作用域是request,它的有效范围是当前请求周期。所谓请求周期,就是指从http请求发起,到服务器处理结束,返回响应的整个过程。在这个过程中可能使用forward的方式跳转了多个jsp页面,在这些页面里你都可以使用这个变量。
- 如果把变量放到session里,就说明它的作用域是session,它的有效范围是当前会话。用户打开浏览器访问,创建session(生命周期开始),session超时(默认为30分钟)或被声明失效(关闭浏览器),该对象生命周期结束(一次会话).session里的属性,你可在任何网页中设置和调用.
- 如果把变量放到application里,就说明它的作用域是application,它的有效范围是整个应用。整个应用是指从应用启动,到应用结束。我们没有说“从服务器启动,到服务器关闭”是因为一个服务器可能部署多个应用,当然你关闭了服务器,就会把上面所有的应用都关闭了。application作用域里的变量,它们的存活时间是最长的,如果不进行手工删除,它们就一直可以使用。与上述三个不同的是,application里的变量可以被所有用户共用。如果用户甲的操作修改了application中的变量,用户乙访问时得到的是修改后的值。
指定域获取变量值:${pageScope.name}
域范围:pageScope<requestScope<sessionScope<applicationScope