0

jsp:includeまたはが実行されると、インクルードされたページまたは転送されたjsp:forwardページに元のリクエスト オブジェクトが表示されます。元のパラメータは新しいパラメータで拡張され、適用可能な場合は新しい値が既存の値よりも優先されます。

たとえば、リクエストにパラメータ がLname=abcあり、パラメータLname=xyzが forward に指定されている場合、転送されるリクエストにはLname=xyz, abc.

新しいパラメータが優先されます

例を挙げて説明してください。

4

1 に答える 1

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 を使用してパラメータにアクセスできます。例えば

${param.param1}

jsp:forward では、リクエスト オブジェクトを使用してパラメータにアクセスできます。例えば

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 が生成されます。

ありがとう

于 2012-12-24T06:49:38.453 に答える