v 在页面、请求和用户之间共享数据
Ø 将控制从一个页面传递到另一个页面
<jsp:forwqrd page=”somePage.jsp”/>
该行为将结束对一个页面的处理,而开始处理由page属性指定的页面,该页面叫
做目标页面。
目标页面可以访问关于请求(request)的全部信息,包括所有的请求参数。还可以
使用<jsp:param>行为元素加入额外的请求参数。
<jsp:forwqrd page=”somePage.jsp”/>
<jsp:param name=”msg” value=”Invalid email address”/>
</jsp:forward>
<jsp:param>元素指定的参数会添加到从原始请求中得到的参数中。Page属性可以
使用“/”开始的环境相关的路径,也可以使用相对路径(../foo/bar.jsp)。
例:路径c:\tomcat\webapps\myapp\registeration\userinfo下引用
Page=”bar.jsp”
c:\tomcat\webapps\myapp\registeration\userinfo/bar.jsp
Page=”../foo/bar.jsp”
c:\tomcat\webapps\myapp\registeration\foo/bar.jsp
Page=”/foo/bar.jsp”
c:\tomcat\webapps\myapp\foo\bar.jsp
Ø 将数据从一个页面传递到另一个页面
为了在页面、请求和用户之间共享数据对象,JSP提供了不同的作用域(scope)。作用
域定义了对象在多长时间内是可用的,以及它是仅可被一个用户使用,还是可以被应用
程序的所有用户共用。
JSP共定义以下几种作用域
i) page scope:
ii) request scope
iii) seesion scope
iv) application scope
® 默认作用域是页作用域,这个作用域中的对象知在该页面中可用。
® 请求作用域用于那些需要在所有处理同一请求的页面中都可用的对象
® 会话作用域中的对象可用于同一个浏览器发出的所有请求
® 应用程序作用域中的对象则被应用程序的所有用户所共享。
® <jsp:useBean>行为有一个scope属性,该行为保证bean 已经存在于该作用域中,或者创建一个新的bean,并将其放在指定的作用域中。
® <jsp:useBean>创建的bean可以作为EL表达式中的一个变量供人访问,一般情况下,仅指定变量即可,无论它保存在哪个作用域中,例如:
<c:out value=”${userInfo.userName}”/>
此时EL会按照以下作用域顺序来查找变量
i) <c:out value=”${pageScope.userInfo.userName}”/>
ii) <c:out value=”${requestScope.userInfo.userName}”/>
iii) <c:out value=”${sessionScope.userInfo.userName}”/>
iv) <c:out value=”${application.userInfo.userName}”/>