JSPページ間でのパラメータの受け渡しは、複数のJSPページ間でパラメータを渡す必要がある場合によく使用される機能です。次の記事では、JSPページ間で値を渡す方法に関する関連情報を主に紹介します。 JSP について詳しく紹介しています。JSP に興味のある皆さんにとって、確かな参考と学習価値があります。以下を見てみましょう。
はじめに
JSP ページ間でパラメータを渡すことは、多くの場合、プロジェクトで必要となります。さまざまな方法をまとめてみて、必要に応じてメリットとデメリットを比較検討して、最も適切な方法を選択してください。詳細な紹介を見てみましょう:
1. URL リンクの後にパラメータを追加します
<a href="next.jsp?paramA=A¶mB=B..." rel="external nofollow" >URL 后面追加参数</a> <jsp:include page="next.jsp"><jsp:param name="paramA" value="A"/></jsp:include> <jsp:forward page="next.jsp"><jsp:param name="paramA" value="B"/></jsp:forward> response.sendRedirect("next.jsp?paramA=A¶mB=B...") window.location = "next.jsp?paramA=A¶mB=B..."
上記のコードが実行されると、パラメータを含む next.jsp ページにジャンプします。
next.jsp ページで対応するパラメータを取得する方法は次のとおりです:
//内嵌的 java 代码 <%String paramA = request.getParameter("paramA"); %> //如果引入了 EL {param.paramA}
利点: シンプルさとマルチブラウザのサポート (URL をサポートしていないブラウザはありません)。
欠点:
1) 送信されるデータは文字列のみであり、データ型とサイズに特定の制限があります
2) 送信されるデータの値はブラウザのアドレスに表示されます。 bar ほら、セキュリティレベルが低いです。
2. Form
<form action="next.jsp" method="post"> <input type="text" name="paramA" value="A"> <input type="hidden" name="paramB" value="B"> <input type="submit" value="提交"> </form>
next.jspページで対応するパラメータを取得する方法は(1)と同様です。
利点:
1) シンプルさとマルチブラウザのサポート (また、フォームをサポートしていないブラウザもありません);
2) 送信できるデータの量は URL メソッドよりもはるかに大きくなります。送信 値はブラウザのアドレス バーに表示されますが、少しハッキングすることで、ページのソース コードからパラメータ リストを構築することもできます。
欠点:1) 送信されるデータは文字列のみです。データ型に関する特定の制限があります。
3. Cookieを設定する クライアントの認証資格情報を使用して、小さな Cookie によっても JSP ページの値の転送を実現できます。
<% Cookie c=new Cookie("paramA","A"); c.setMaxAge(60*60); //cookie 有效期1分钟 response.addCookie(c); //将cookie 添加到 http响应中 %>
next.jsp ページの Cookie を読み取りたい場合は、request.getCookies()
メソッドを呼び出して javax.<a href="http:/" を取得する必要があります。 /www.php.cn/wiki/1516.html" target="_blank">servlet</p>.http.Cookie
オブジェクトの配列。
request.getCookies()
方法来获得一个javax.<a href="http://www.php.cn/wiki/1516.html" target="_blank">servlet</a>.http.Cookie
对象的数组。
然后遍历这个数组,使用getName()
方法和getValue()
次に、この配列を反復処理し、getName()
メソッドと getValue()
メソッドを使用して、各 Cookie の名前と値を取得します。
//内嵌的 java 代码 <% Cookie cookie = null; // 获取cookies的数据,是一个数组 Cookie[] cookies = request.getCookies(); if(cookies != null ){ for (int i = 0; i < cookies.length; i++){ cookie = cookies[i]; out.print("参数名 : " + cookie.getName()); out.print("<br>"); out.print("参数值: " + URLDecoder.decode(cookie.getValue(), "utf-8") +" <br>"); out.print("------------------------------------<br>"); } }else{ out.println("<h2>没有发现 Cookie</h2>"); } %> //EL 获取方式 ${cookie.paramA.value}
利点:
1) Cookie の値は、クライアント マシンが閉じられている場合でも、次回開いたときに引き続き取得できます。
2) Cookie は、サーバには複数のステータス情報が保存されますが、サーバ側でストレージリソースを特別に確保する必要がなく、サーバ側の負担が軽減されます。
欠点:
1) URLやフォームに比べてセキュリティは大幅に向上していますが、クライアントのCookieを取得して顧客情報を漏洩する黒い方法もあります。
4. Session
の設定 個人的には、セッションとクッキーはサーバー側とクライアント側で1つであると考えています。
キーと値のペアを追加すると、ページ間の転送が提供されるだけでなく、実際にはデータ共有ソリューションになります。
<% session.setAttribute("paramA","A"); response.sendRedirect("next.jsp"); %>
next.jsp でセッションを読みたい場合:
//内嵌java 片段 <%=session.getAttribute("paramA") %> //EL 获取方式 {session.paramA}
Session の長所と短所については、Cookie を参照してください。
上記がこの記事のすべての内容です。皆さんの学習に役立つことを願っています。 !
関連する推奨事項:
WEB-INF ディレクトリ内の JSP ページに直接アクセスする方法の詳細な説明
新しい JSP ページにジャンプするための ajax の実装方法
によって提供される関数タグ EL 式JSP 内の JSTL 文字列を操作するメソッド
以上がJSPページ間の値の転送方法のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。