2012-12-24 37 views
0

当执行jsp:includejsp:forward,包含页面或转发 页面会看到原始请求对象,用新的参数扩充原有的参数 和新的价值优先于 现有的值时适用。的Java服务器页面帕拉姆混乱

例如,如果该请求具有参数 Lname=abcLname=xyz是 指定为前进的参数,转发请求 将具有Lname=xyz, abc

新参数优先

请用一个例子来解释。

+0

粘贴您的jsp代码。 –

+0

m对不起,但我没有任何jsp代码它只是我无法理解为“当执行jsp:include或jsp:forward时,包含的页面或转发的页面将看到原始请求对象,原始参数增加例如,如果请求具有参数Lname = abc并且为forward指定了参数Lname = xyz,则转发的请求将具有Lname = xyz,abc。 有Lname = xyz,abc“它是如何做的,它会对m有好处,如果生病得到一些代码来理解这个 – surya

回答

2

让我们了解jsp:include和jsp:forward之间的主要区别。

jsp:include,包含当前页面内的页面。因此,包含的页面将精确地显示您在当前页面内添加了jsp命令的位置。

例如

... 
<jsp:include page="inc/include.jsp" /> 
... 

但jsp:forward会将当前页面转发到转发页面。之后立即调用当前页面被称为转发页面的含义。

例如

if (...) { forwarded to pageOne.jsp } 
else if (...) { forwarded to pageTwo.jsp } 

下面是我们可以访问jsp:forward和jsp:include的参数的方式。

jsp:include:我们可以使用param而不是request对象来访问参数。 例如

${param.param1} 

while在jsp:forward中:我们可以使用请求对象访问参数。 例如

request.getParameter("param1") 

这就是jsp:inlcude和jsp:forward中参数的主要区别。因此,我们在jsp:forward中获得新的价值(比如Lname = xyz)。

例如:

说,我们有一个参数L-NAME = XYZ在请求对象。在当前JSP可以使用下面的代码来访问现在

<%= (String)request.getParameter("Lname"); %> <%-- This will print xyz on jsp --%> 

,进一步相同的参数名称可以用JSP使用:前进,就像...

<jsp:forward page="fwd/pageOne.jsp?Lname=abc" /> 

<jsp:forward page="fwd/pageOne.jsp"> 
    <param name="Lname" value="abc"/> 
</jsp:forward> 

这将导致fwd/pageOne.jsp中的Lname = abc使用request.getParameter()方法。

谢谢

+1

Thanx但我怎么显示Lname = xyz,abc如果请求有一个参数Lname = abc和a为前向指定参数Lname = xyz,并使原始参数与新参数一起增加,新值取pre在适用的时候遵守现有的价值。我如何显示这个例子 – surya

+0

请帮我这 – surya

+0

根据我对你的评论的理解,我已经更新了我的答案。请检查并在发生任何问题时通知我。 – Ashvin