JSPフォーム処理
私たちはしばしば、サーバーに情報を送信し、デーモンプロセスをさせる必要があり、Webをブラウズ。 ブラウザがサーバにデータを送信するために、GETとPOSTメソッドを使用しています。
GETメソッド
"?"で区切らを通じてURL、URLエンコードの情報に追加する情報要求を符号化する方法をGET。 次のように:
http://www.w3big.com/hello?key1=value1&key2=value2
GETメソッドは、GETメソッドを使用しないことをお勧めパスワードやその他のようなパラメータのデフォルトブラウザ、機密情報を、渡す方法です。
慣れる、送信データのサイズが1024バイトまで、(限定されるものではなく、パラメータの数に注意してください)制限されます。
POSTメソッド
そのような私たちがデータを送信するPOSTメソッド、POSTを渡すことができますので、パスワードやなどの機密情報が暗黙的です。
データを送信するために、POSTが表示されていない、内部URLを介して渡されるGET(あなたがブラウザのアドレスバーを見ることができます)。
JSP渡されたパラメータを取得するためのgetParameter()を使用して、のgetInputStream()メソッドは、クライアントの要求バイナリデータストリームを処理するために使用されます。
JSPフォームデータが読み出されます
getParameter():使用request.getParameter()メソッドは、フォームパラメータの値を取得します。
getParameterValues():チェックボックスクラス(同じ名前が、複数の値)データとして取得します。このようなタイプのチェックボックスなどの変数、配列を受け取ります
getParameterNamesメソッド():このメソッドは、すべての変数の名前を取得することができ、この方法は、Emumerationを返します。
getInputStream():このメソッドは、クライアントからのバイナリデータストリームを読み取るために呼び出されます。
URLのGETメソッドの使用例
以下は、単純なURLで、URLにパラメータを渡すためにGETメソッドを使用しています。
http://localhost:8080/testjsp/main.jsp?name=本教程&url=http://ww.w3big.com
プロジェクトのtestjspアドレス。
以下は、我々は、データが送信取得するのgetParameter()メソッドを使用して、クライアントによって送信されたフォームデータを処理するためのJSPプログラム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>本教程(w3big.com)</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名=次のようにこのチュートリアル&URL = HTTP :? //ww.w3big.com出力結果は以下のとおりです。
例の形GETメソッドを使用します。
以下は、クライアント・データ・ファイルをmain.jspするには、GETメソッドにより提出される単純なHTMLフォーム、次のとおりです。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>本教程(w3big.com)</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>
Test.htmファイルに上記のHTMLコードを保存します。 (main.jsp同じディレクトリを持つ)のWebContent JSPプロジェクトの下で、現在のディレクトリにファイルを配置します。
訪問HTTPで:// localhostを:8080 / testjsp / test.htmlというmain.jspファイルにフォームデータを提出し、GIFのデモは以下のとおり:
それが結果出力は以下となり、「サイト名」と「URL」2つのフォームに情報を入力し、「送信」ボタンをクリックします。
フォームの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>本教程(w3big.com)</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>
コード我々は新しいString使用((request.getParameter( "名 "))。GetBytesメソッド()「ISO-8859-1」、「UTF-8」)は、コードを変換中国の文字化けが発生するのを防止することができます。
ここで修正されたコードをTest.htmは、次のとおりです。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>本教程(w3big.com)</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プログラムにデータを渡します
チェックボックスのチェックボックスは、さらに多くのデータを渡すことができます。
以下は、単純なHTMLコードで、コードがTest.htmというファイルに保存されています。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>本教程(w3big.com)</title> </head> <body> <form action="main.jsp" method="POST" target="_blank"> <input type="checkbox" name="google" checked="checked" /> Google <input type="checkbox" name="w3big" /> 本教程 <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>本教程(w3big.com)</title> </head> <body> <h1>从复选框中读取数据</h1> <ul> <li><p><b>Google 是否选中:</b> <%= request.getParameter("google")%> </p></li> <li><p><b>本教程是否选中:</b> <%= request.getParameter("w3big")%> </p></li> <li><p><b>淘宝是否选中:</b> <%= request.getParameter("taobao")%> </p></li> </ul> </body> </html>
訪問HTTPで:// localhostを:8080 / testjsp / test.htmlというmain.jspファイルにフォームデータを提出し、GIFのデモは以下のとおり:
すべてのフォームパラメータを読みます
我々は、フォームのすべてのパラメータを読み取るためのHttpServletRequest getParameterNamesメソッド()を使用します。下には、この方法は、すべての変数の名前を取得することができ、この方法は、列挙を返します。
私たちが列挙(列挙)をしたら、我々は要素があるかどうかを判断するために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>本教程(w3big.com)</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>本教程(w3big.com)</title> </head> <body> <form action="main.jsp" method="POST" target="_blank"> <input type="checkbox" name="google" checked="checked" /> Google <input type="checkbox" name="w3big" /> 本教程 <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コード以上のものを使用しようとすることができます。