首頁(yè)常見問題正文

說一下jsp的4種作用域?

更新時(shí)間:2023-04-14 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  JSP(Java Server Pages)是一種用于動(dòng)態(tài)生成 HTML 頁(yè)面的 Java 技術(shù),它支持四種不同的作用域,分別是:

  1.Page Scope:頁(yè)面作用域是指頁(yè)面內(nèi)的變量,它們?cè)陧?yè)面內(nèi)有效,但在JSP(Java Server Pages)是一種用于動(dòng)態(tài)生成 HTML 頁(yè)面的 Java 技術(shù),它支持四種不同的作用域,分別是其他頁(yè)面中不可見。頁(yè)面作用域變量可以通過 pageContext 對(duì)象進(jìn)行訪問。

  2.Request Scope:請(qǐng)求作用域是指變量在請(qǐng)求中傳遞。在同一次請(qǐng)求中,變量在不同的頁(yè)面間共享。請(qǐng)求作用域變量可以通過 request 對(duì)象進(jìn)行訪問。

  3.Session Scope:會(huì)話作用域是指變量在用戶會(huì)話期間保持一致。在同一用戶的不同請(qǐng)求中,變量在不同的頁(yè)面之間共享。會(huì)話作用域變量可以通過 session 對(duì)象進(jìn)行訪問。

1681440380171_JSP的四種作用域.jpg

  4.Application Scope:應(yīng)用程序作用域是指變量在整個(gè)應(yīng)用程序生命周期內(nèi)保持一致。在同一應(yīng)用程序的不同請(qǐng)求中,變量在不同的頁(yè)面之間共享。應(yīng)用程序作用域變量可以通過 application 對(duì)象進(jìn)行訪問。

  下面是一個(gè)簡(jiǎn)單的 JSP 頁(yè)面,演示了如何在不同作用域中設(shè)置和獲取變量:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>作用域演示</title>
</head>
<body>
    <%-- 在頁(yè)面作用域中設(shè)置變量 --%>
    <% pageContext.setAttribute("pageVariable", "PageScope"); %>
    
    <%-- 在請(qǐng)求作用域中設(shè)置變量 --%>
    <% request.setAttribute("requestVariable", "RequestScope"); %>
    
    <%-- 在會(huì)話作用域中設(shè)置變量 --%>
    <% session.setAttribute("sessionVariable", "SessionScope"); %>
    
    <%-- 在應(yīng)用程序作用域中設(shè)置變量 --%>
    <% application.setAttribute("applicationVariable", "ApplicationScope"); %>
    
    <%-- 輸出各個(gè)作用域中的變量 --%>
    <h1>作用域演示</h1>
    <p>頁(yè)面作用域中的變量:${pageContext.pageVariable}</p>
    <p>請(qǐng)求作用域中的變量:${request.requestVariable}</p>
    <p>會(huì)話作用域中的變量:${session.sessionVariable}</p>
    <p>應(yīng)用程序作用域中的變量:${application.applicationVariable}</p>
</body>
</html>

  在上面的例子中,我們分別使用pageContext、request、session 和application對(duì)象設(shè)置了不同作用域中的變量,并使用EL 表達(dá)式${}在頁(yè)面中輸出了這些變量的值。需要注意的是,EL表達(dá)式中的變量名要與 setAttribute()方法中設(shè)置的變量名一致。

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!