这是相同或不同的pageContext Scope和JSP页面中的一些Implicit对象吗?

Vis*_*hah 10 java jsp

这个东西是相同还是不同,如果不同那么请给我理由和如何?

这件事是在写的..

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

了request.setAttribute( "第一", "值1");

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

session.setAttribute( "第一", "值1");

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

application.setAttribute( "第一", "值1");

小智 27

在JSP页面中,您最多可以使用"4个位置",您可以在其中放置对象以便稍后检索它们.

1)页面范围

无论您在页面范围内放置什么,都只能在那里使用.通过或转发包含的同一请求中的任何其他页面都不会看到该对象,因为它们定义了自己的页面范围,该范围不包含调用页面的页面范围.

这是默认范围,因此调用pageContext.setAttribute("a", "b", PageContext.PAGE_SCOPE);与调用相同pageContext.setAttribute("a", "b");

2)请求范围

您在请求范围内放置的内容可用于为此JSP页面提供服务的所有页面.因此,包含或转发的其他页面(不是HTTP重定向)将共享此上下文,并可以访问在调用页面上下文中声明的属性.

呼叫pageContext.setAttribute("a", "b", PageContext.REQUEST_SCOPE);与呼叫相同request.setAttribute("a", "b");

3)会话范围

您在会话范围上放置的内容可用于同一用户会话中的所有请求.

呼叫pageContext.setAttribute("a", "b", PageContext.SESSION_SCOPE);与呼叫相同session.setAttribute("a", "b");

4)适用范围

您在应用程序范围内的内容可用于应用程序的所有请求(即由所有用户共享).这意味着生命周期基本上与应用程序运行一样长.所以你通常不想使用这个.

通话pageContext.setAttribute("a", "b", PageContext.APPLICATION_SCOPE);等于通话application.setAttribute("a", "b");