Существуют четыре основные области видимости (scopes) переменных, которые определяют, сколько времени переменная будет доступна и где она может быть использована. Это
page, request, session и application.🚩Области видимости переменных в JSP
🟠Page Scope
Переменная с областью видимости страницы доступна только на текущей странице JSP. Существует только во время обработки текущей страницы. Локальные переменные, необходимые только в пределах одной страницы.
🟠Request Scope
Переменная с областью видимости запроса доступна во всех JSP, сервлетах и других ресурсах, которые обрабатывают текущий HTTP-запрос. Существует до тех пор, пока запрос не будет завершен. Данные, которые нужно передать между несколькими сервлетами и JSP в пределах одного запроса.
🟠Session Scope
Переменная с областью видимости сессии доступна во всех JSP, сервлетах и других ресурсах, которые обрабатывают запросы от конкретного пользователя в рамках одной сессии. Существует до завершения сессии (например, закрытие браузера или истечение времени сессии). Данные, которые должны сохраняться между запросами одного пользователя, например, информация о вошедшем пользователе.
🟠Application Scope
Переменная с областью видимости приложения доступна во всех JSP, сервлетах и других ресурсах в пределах всего веб-приложения. Существует до тех пор, пока приложение работает на сервере. Данные, которые должны быть доступны всем пользователям и запросам, например, конфигурационные параметры приложения.
🚩Пример использования всех областей видимости
Локальная переменная, которая используется только на одной странице (
page scope). Временные данные для текущего запроса (request scope). Данные пользователя для текущей сессии (session scope). Глобальные данные для всего приложения (application scope).@WebServlet("/example")
public class ExampleServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Request scope
request.setAttribute("requestVar", "Request Scoped Variable");
// Session scope
HttpSession session = request.getSession();
session.setAttribute("sessionVar", "Session Scoped Variable");
// Application scope
ServletContext context = getServletContext();
context.setAttribute("appVar", "Application Scoped Variable");
// Forward to JSP
RequestDispatcher dispatcher = request.getRequestDispatcher("example.jsp");
dispatcher.forward(request, response);
}
}JSP (
example.jsp)<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Scope Example</title>
</head>
<body>
<h1>Scope Example</h1>
<p>Request Scope: <%= request.getAttribute("requestVar") %></p>
<p>Session Scope: <%= session.getAttribute("sessionVar") %></p>
<p>Application Scope: <%= application.getAttribute("appVar") %></p>
<%! String pageVar = "Page Scoped Variable"; %>
<p>Page Scope: <%= pageVar %></p>
</body>
</html>
Ставь 👍 и забирай 📚 Базу знаний