首页常见问题正文

说一下jsp的4种作用域?

更新时间:2023-04-14 来源:黑马程序员 浏览量:

IT培训班

  JSP(Java Server Pages)是一种用于动态生成 HTML 页面的 Java 技术,它支持四种不同的作用域,分别是:

  1.Page Scope:页面作用域是指页面内的变量,它们在页面内有效,但在JSP(Java Server Pages)是一种用于动态生成 HTML 页面的 Java 技术,它支持四种不同的作用域,分别是其他页面中不可见。页面作用域变量可以通过 pageContext 对象进行访问。

  2.Request Scope:请求作用域是指变量在请求中传递。在同一次请求中,变量在不同的页面间共享。请求作用域变量可以通过 request 对象进行访问。

  3.Session Scope:会话作用域是指变量在用户会话期间保持一致。在同一用户的不同请求中,变量在不同的页面之间共享。会话作用域变量可以通过 session 对象进行访问。

1681440380171_JSP的四种作用域.jpg

  4.Application Scope:应用程序作用域是指变量在整个应用程序生命周期内保持一致。在同一应用程序的不同请求中,变量在不同的页面之间共享。应用程序作用域变量可以通过 application 对象进行访问。

  下面是一个简单的 JSP 页面,演示了如何在不同作用域中设置和获取变量:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>作用域演示</title>
</head>
<body>
    <%-- 在页面作用域中设置变量 --%>
    <% pageContext.setAttribute("pageVariable", "PageScope"); %>
    
    <%-- 在请求作用域中设置变量 --%>
    <% request.setAttribute("requestVariable", "RequestScope"); %>
    
    <%-- 在会话作用域中设置变量 --%>
    <% session.setAttribute("sessionVariable", "SessionScope"); %>
    
    <%-- 在应用程序作用域中设置变量 --%>
    <% application.setAttribute("applicationVariable", "ApplicationScope"); %>
    
    <%-- 输出各个作用域中的变量 --%>
    <h1>作用域演示</h1>
    <p>页面作用域中的变量:${pageContext.pageVariable}</p>
    <p>请求作用域中的变量:${request.requestVariable}</p>
    <p>会话作用域中的变量:${session.sessionVariable}</p>
    <p>应用程序作用域中的变量:${application.applicationVariable}</p>
</body>
</html>

  在上面的例子中,我们分别使用pageContext、request、session 和application对象设置了不同作用域中的变量,并使用EL 表达式${}在页面中输出了这些变量的值。需要注意的是,EL表达式中的变量名要与 setAttribute()方法中设置的变量名一致。

分享到:
在线咨询 我要报名
和我们在线交谈!