JSP 四种作用域
对象的作用域就是对象的生命周期和可访问性,在JSP中主要拥有四种作用域,即:页面域、请求域、会话域、应用域。
| ID |
SM |
DA |
| 页面域 (page scope) |
页面域的生命周期是指页面的执行时间 |
存储在页面域的对象只能在他所在的页面进行访问。 |
| 请求域 (request scope) |
请求域的生命周期是指一次的请求过程 |
存储在请求域之中的对象只能在请求过程中才能访问 |
| 会话域 (session scope) |
会话域的生命周期是指莫个客户端与服务器连接的所用时间 |
客户端在第一次访问服务器时会创建绘画,在会话过期之前,存储在会话域中的对象都可以被访问 |
| 应用域 (application scope) |
服务器开始执行服务到服务器关闭的时间就是应用域的生存时间 |
存储在应用域中的对象在整个程序运行期间可以被所有的JSP和服务器连接器(Servlet)共享访问。 |
作用与对应函数
| ID |
DA |
| pageContext |
页面域 |
| requesteContext |
请求域 |
| sessionContext |
会话域 |
| applicationContext |
应用域 |
页面域
1 2 3 4 5 6 7 8 9 10 11
| <% int pagecontext = 1; if (pageContext.getAttribute("pageContext") != null) { pagecontext = Integer.parseInt(pageContext.getAttribute("pageContext").toString()); pagecontext++; } pageContext.setAttribute("pageCount", pagecontext); %> <p>page:<%=pagecontext %></p>
|
请求域
1 2 3 4 5 6 7 8 9
| <% int requestcontext = 1; if (request.getAttribute("requestContext") !=null) { requestcontext = Integer.parseInt(request.getAttribute("requestContext").toString()); requestcontext++; } request.setAttribute("requestContext", requestcontext); %> <p>request:<%=requestcontext %></p>
|
会话域
1 2 3 4 5 6 7 8 9
| <% int sessioncontext = 1; if (session.getAttribute("sessionContext") !=null) { sessioncontext = Integer.parseInt(session.getAttribute("sessionContext").toString()); sessioncontext++; } session.setAttribute("sessionCount",sessioncontext); %> <p>session:<%=sessioncontext %></p>
|
会话域访问范围为当前浏览器的绘画,因此刷新页面访问会计数增加,但是新开浏览器时则会重置为0;
应用域
1 2 3 4 5 6 7 8 9
| <% int applicationcontext = 1; if (application.getAttribute("applicationContext") !=null) { applicationcontext = Integer.parseInt(application.getAttribute("applicationContext").toString()); applicationcontext++; } application.setAttribute("applicationContext",applicationcontext); %> <p>application:<%=applicationcontext %></p>
|
应用域为整个应用,只要服务器不停止运行,计数就会累计进行增加
⬅️ Go back