执行jsp:include
或jsp:forward
时,包含的页面或已转发
页面将看到原始请求对象,带有原始参数
增加了新参数和新值优先于
适用时的现有值。
例如,如果请求有参数
Lname=abc
和参数Lname=xyz
是
指定转发请求
将有Lname=xyz, abc
。
新参数优先
请举例说明。
答案 0 :(得分:2)
让我们理解jsp:include和jsp:forward之间的主要区别。
jsp:include,包括当前页面内的页面。因此,包含的页面将准确显示在您在当前页面中添加了jsp命令的位置。
e.g。
...
<jsp:include page="inc/include.jsp" />
...
但是jsp:forward会将当前页面转发到转发页面。在调用当前页面时的含义在转发页面之后立即调用。
e.g。
if (...) { forwarded to pageOne.jsp }
else if (...) { forwarded to pageTwo.jsp }
现在,我们可以访问jsp:forward和jsp:include。
的参数jsp:include:我们可以使用param访问参数而不是请求对象。 e.g。
${param.param1}
在jsp:forward中:我们可以使用请求对象访问参数。 e.g。
request.getParameter("param1")
这是jsp中参数的主要区别:inlcude和jsp:forward。因此,我们在jsp:forward(比如Lname = xyz)中获得了新的价值。
示例:
我们在请求对象中有一个参数Lname = xyz。在当前的jsp中,可以使用下面的代码
来访问它<%= (String)request.getParameter("Lname"); %> <%-- This will print xyz on jsp --%>
现在,jsp:forward可以使用相同的参数名称,例如......
<jsp:forward page="fwd/pageOne.jsp?Lname=abc" />
或
<jsp:forward page="fwd/pageOne.jsp">
<param name="Lname" value="abc"/>
</jsp:forward>
这将使用request.getParameter()方法在fwd / pageOne.jsp中产生Lname = abc。
由于