ホームページ  >  記事  >  ウェブフロントエンド  >  JSPページ間の値の転送方法のまとめ

JSPページ間の値の転送方法のまとめ

韦小宝
韦小宝オリジナル
2018-01-18 09:55:152119ブラウズ

JSPページ間でのパラメータの受け渡しは、複数のJSPページ間でパラメータを渡す必要がある場合によく使用される機能です。次の記事では、JSPページ間で値を渡す方法に関する関連情報を主に紹介します。 JSP について詳しく紹介しています。JSP に興味のある皆さんにとって、確かな参考と学習価値があります。以下を見てみましょう。

はじめに

JSP ページ間でパラメータを渡すことは、多くの場合、プロジェクトで必要となります。さまざまな方法をまとめてみて、必要に応じてメリットとデメリットを比較検討して、最も適切な方法を選択してください。詳細な紹介を見てみましょう:

1. URL リンクの後にパラメータを追加します

<a href="next.jsp?paramA=A&paramB=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&paramB=B...")

window.location = "next.jsp?paramA=A&paramB=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:/" target="_blank">servlet</a>

.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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。