Diese Dinge sind gleich oder anders, wenn sie anders sind, dann gib mir bitte einen Grund dafür und wie?
1) pageContext.setAttribute ("first", "value1", pageContext.REQUEST_SCOPE);
und
2) pageContext.setAttribute ("first", "value1", pageContext.SESSION_SCOPE);
und
3) pageContext.setAttribute ("first", "value1", pageContext.APPLICATION_SCOPE);
und
application.setAttribute ("first", "value1");
In JSP-Seiten haben Sie bis zu "4 Orte", an denen Sie Objekte ablegen können, um sie später abzurufen.
1) Seitenumfang
Was immer Sie in Ihren Seitenbereich eingeben, ist nur dort verfügbar. Jede andere Seite in derselben Anfrage, die per oder weitergeleitet wird, wird das Objekt nicht sehen, da sie ihren eigenen Seitenbereich definieren, der den Seitenbereich der aufrufenden Seite nicht enthält.
Dies ist der Standardbereich, daher ist der Aufruf von pageContext.setAttribute("a", "b", PageContext.PAGE_SCOPE);
mit dem Aufruf von pageContext.setAttribute("a", "b");
2) Anfrage Umfang
Was Sie in den Geltungsbereich Ihrer Anfrage geschrieben haben, ist auf allen Seiten der Anfrage verfügbar, die diese JSP-Seite bedienen. Daher werden andere Seiten, die enthalten oder weitergeleitet werden (nicht HTTP-Weiterleitung), diesen Kontext freigeben und können auf die im aufrufenden Seitenkontext deklarierten Attribute zugreifen.
Der Aufruf von pageContext.setAttribute("a", "b", PageContext.REQUEST_SCOPE);
entspricht dem Aufruf von request.setAttribute("a", "b");
3) Sitzungsumfang
Was Sie auf Ihren Sitzungsumfang anwenden, ist für alle Anfragen in derselben Benutzersitzung verfügbar.
Der Aufruf von pageContext.setAttribute("a", "b", PageContext.SESSION_SCOPE);
entspricht dem Aufruf von session.setAttribute("a", "b");
4) Anwendungsbereich
Was Sie in Ihren Anwendungsbereich legen, ist für alle Anfragen Ihrer Anwendung verfügbar (d. h. wird von allen Benutzern geteilt). Dies bedeutet eine Lebensdauer, die grundsätzlich so lang ist, wie die Anwendung ausgeführt wird. Also willst du diesen nicht benutzen.
Aufruf von pageContext.setAttribute("a", "b", PageContext.APPLICATION_SCOPE);
entspricht dem Aufruf von application.setAttribute("a", "b");
alle drei sind im Grunde die gleiche, nur unterschiedliche Art der Variablen in den jeweiligen Bereichen festlegen.
überprüfen Sie dies Artikel . Es besagt, dass der dritte Parameter für die Methode setAttribute
den Bereich definiert, in dem die Variable festgelegt werden muss.
Also wird in Ihrem Fall zunächst Wert im Anforderungsbereich festgelegt, der zweite wird ihn in der Sitzung festlegen und der dritte wird ihn im Anwendungsumfang setzen.