JSPフォーム処理


Web を閲覧するとき、多くの場合、情報をサーバーに送信し、バックグラウンド プログラムに処理させる必要があります。ブラウザは GET メソッドと POST メソッドを使用してデータをサーバーに送信します。


GETメソッド

GETメソッドは、URLの後に要求されたエンコード情報を追加し、URLとエンコード情報を「?」で区切ります。以下に示すように:

http://www.php.cn/hello?key1=value1&key2=value2

GET メソッドは、ブラウザがパラメータを渡すためのデフォルトのメソッドです。パスワードなどの一部の機密情報には GET メソッドを使用しないことをお勧めします。

get を使用する場合、送信されるデータのサイズは制限されており (パラメーターの数に制限がないことに注意してください)、最大は 1024 バイトです。


POST メソッド

パスワードなどの一部の機密情報は、POST 送信データを暗黙的に通過できます。

POST 送信されたデータは表示されず、GET は URL で渡されます (ブラウザーのアドレス バーで確認できます)。

JSP は getParameter() を使用して渡されたパラメータを取得し、getInputStream() メソッドを使用してクライアントのバイナリ データ ストリーム リクエストを処理します。


JSPはフォームデータを読み取ります

  • getParameter(): request.getParameter()メソッドを使用してフォームパラメータの値を取得します。

  • getParameterValues(): チェックボックスクラスなどのデータを取得します(同じ名前ですが複数の値)。 チェックボックス type などの配列変数を受け取ります

  • getParameterNames():このメソッドはすべての変数の名前を取得でき、このメソッドはエミュレーションを返します。

  • getInputStream():このメソッドを呼び出して、クライアントからバイナリ データ ストリームを読み取ります。


URL の GET メソッドの使用例

以下は単純な URL で、GET メソッドを使用して URL 内のパラメーターを渡します。

http://localhost:8080/testjsp/main.jsp?name=php中文网&url=http://ww.php.cn

testjsp はプロジェクト アドレスです。

以下は、クライアントから送信されたフォームデータを処理するための main.jsp ファイルの JSP プログラムです。getParameter() メソッドを使用して、送信されたデータを取得します。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<h1>使用 GET 方法读取数据</h1>
<ul>
<li><p><b>站点名:</b>
   <%= request.getParameter("name")%>
</p></li>
<li><p><b>网址:</b>
   <%= request.getParameter("url")%>
</p></li>
</ul>
</body>
</html>

次にブラウザ経由でアクセスします http:/ /localhost :8080/testjsp/main.jsp?name=php中文网&url=http://ww.php.cn出力結果は以下の通りです:


フォームのGETメソッドの使用例

以下は例です。GET メソッドを通じてクライアント データを送信する単純な HTML フォーム main.jsp ファイルへ:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>

<form action="main.jsp" method="GET">
站点名: <input type="text" name="name">
<br />
网址: <input type="text" name="url" />
<input type="submit" value="提交" />
</form>

</body>
</html>

上記の HTML コードを test.htm ファイルに保存します。 このファイルを現在の JSP プロジェクトの WebContent ディレクトリ (main.jsp と同じディレクトリ) に配置します。

http://localhost:8080/testjsp/test.htmlにアクセスして、フォーム データを main.jsp ファイルに送信します。デモの Gif 画像は次のとおりです:

[サイト名]と「URL」 両方のフォームに情報を入力し、「送信」ボタンをクリックすると、結果が出力されます。


フォームの POST メソッドの例を使用する

次に、POST メソッドを使用してフォーム データを渡し、次のように main.jsp および Hello.htm ファイルのコードを変更します:

main.jsp ファイル コード:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<h1>使用 POST 方法读取数据</h1>
<ul>
<li><p><b>站点名:</b>
<%
// 解决中文乱码的问题
String name = new String((request.getParameter("name")).getBytes("ISO-8859-1"),"UTF-8");
%>
   <%=name%>
</p></li>
<li><p><b>网址:</b>
   <%= request.getParameter("url")%>
</p></li>
</ul>
</body>
</html>

コードでは、new String((request.getParameter("name")).getBytes("ISO-8859-1"),"UTF-8")を使用して、中国語の発生を防ぐためにエンコーディングを変換します。文字化け。

以下は test.htm の修正コードです:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>

<form action="main.jsp" method="POST">
站点名: <input type="text" name="name">
<br />
网址: <input type="text" name="url" />
<input type="submit" value="提交" />
</form>

</body>
</html>

http://localhost:8080/testjsp/test.html にアクセスしてフォームデータを main.jsp ファイルに送信すると、デモ Gif が表示されます。次のように:


チェックボックスのデータを JSP プログラムに渡す

チェックボックスは 1 つまたは複数のデータを渡すことができます。

以下は単純な HTML コードであり、そのコードを test.htm ファイルに保存します:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>

<form action="main.jsp" method="POST" target="_blank">
<input type="checkbox" name="google" checked="checked" /> Google
<input type="checkbox" name="php"  /> php中文网
<input type="checkbox" name="taobao" checked="checked" /> 
                                                淘宝
<input type="submit" value="选择网站" />
</form>

</body>
</html>

上記のコードは、ブラウザーからアクセスすると次のようになります:

以下は、処理に使用される main.jsp ファイルのコードです。チェック ボックス データ:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<h1>从复选框中读取数据</h1>
<ul>
<li><p><b>Google 是否选中:</b>
   <%= request.getParameter("google")%>
</p></li>
<li><p><b>php中文网是否选中:</b>
   <%= request.getParameter("php")%>
</p></li>
<li><p><b>淘宝是否选中:</b>
   <%= request.getParameter("taobao")%>
</p></li>
</ul>
</body>
</html>

http://localhost:8080/testjsp/test.html にアクセスして、フォーム データを main.jsp ファイルに送信します。デモの Gif は次のとおりです:


。すべてのフォームパラメータを読み取る

以下では、HttpServletRequestgetParameterNames() を使用して、すべてのフォームパラメータの名前を取得できます。このメソッドは列挙を返します。

列挙体を取得したら、hasMoreElements() メソッドを呼び出してさらに要素があるかどうかを確認し、nextElement() メソッドを呼び出して各パラメーターの名前を取得できます。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<h1>读取所有表单参数</h1>
<table width="100%" border="1" align="center">
<tr bgcolor="#949494">
<th>参数名</th><th>参数值</th>
</tr>
<%
   Enumeration paramNames = request.getParameterNames();

   while(paramNames.hasMoreElements()) {
      String paramName = (String)paramNames.nextElement();
      out.print("<tr><td>" + paramName + "</td>\n");
      String paramValue = request.getParameter(paramName);
      out.println("<td> " + paramValue + "</td></tr>\n");
   }
%>
</table>
</body>
</html>

以下は test.htm ファイルの内容です:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>

<form action="main.jsp" method="POST" target="_blank">
<input type="checkbox" name="google" checked="checked" /> Google
<input type="checkbox" name="php"  /> php中文网
<input type="checkbox" name="taobao" checked="checked" /> 
                                                淘宝
<input type="submit" value="选择网站" />
</form>

</body>
</html>

次に、ブラウザから test.htm ファイルにアクセスしてデータを送信します。出力結果は次のとおりです:

http にアクセスすることで: //localhost:8080/testjsp/test.html フォーム データを main.jsp ファイルに送信します。デモの Gif は次のとおりです:

上記の JSP コードを使用して他のオブジェクトを読み取ることができます。テキスト ボックス、ラジオ ボタン、ドロップダウン ボックスなどのデータ形式。