Ist dies der gleiche oder ein anderer pageContext Scope und einige Implizite Objekte in JSP Page?

7

Diese Dinge sind gleich oder anders, wenn sie anders sind, dann gib mir bitte einen Grund dafür und wie?

Diese Dinge sind in Scriplet ..

1) pageContext.setAttribute ("first", "value1", pageContext.REQUEST_SCOPE);

und

request.setAttribute ("first", "value1");

2) pageContext.setAttribute ("first", "value1", pageContext.SESSION_SCOPE);

und

session.setAttribute ("first", "value1");

3) pageContext.setAttribute ("first", "value1", pageContext.APPLICATION_SCOPE);

und

application.setAttribute ("first", "value1");

    
Vishal Shah 29.09.2013, 10:29
quelle

2 Antworten

19

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");

identisch

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");

    
Ramiro Sánchez 30.07.2014, 08:34
quelle
0

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.

    
S4beR 29.09.2013 11:04
quelle

Tags und Links