English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Wenn wir Webseiten im Browser betrachten, müssen wir oft Informationen an den Server senden und die Hintergrundprogramme verarbeiten. Im Browser werden GET und POST-Methoden verwendet, um Daten an den Server zu senden.
Das GET-Verfahren fügt die Kodierungsinformationen der Anfrage am Ende der URL hinzu, und die URL und die Kodierungsinformationen werden durch das "?"-Zeichen getrennt. Zum Beispiel:
http://de.oldtoolbag.com/hello?key1=value1&key2=value2
Das GET-Verfahren ist das Standardübermittlungsverfahren des Browsers, und es wird empfohlen, sensible Informationen wie Passwörter nicht mit dem GET-Verfahren zu übermitteln.
Wenn get verwendet wird, ist die Größe der übermittelten Daten begrenzt (Beachten Sie, dass nicht die Anzahl der Parameter begrenzt ist), maximal1024Bytes.
Einige sensible Informationen, wie Passwörter, können über das POST-Verfahren übermittelt werden, und die Übermittlung von Daten per POST ist implizit.
POST-Übermittlung von Daten ist unsichtbar, GET wird durch das Übermitteln in der URL (Sie können die Adresseleiste Ihres Browsers überprüfen) erreicht.
JSP verwendet getParameter() zur Erhaltens der übermittelten Parameter und die Methode getInputStream() wird verwendet, um die Anfragen des Binärdatenstroms des Clients zu verarbeiten.
getParameter(): Verwenden Sie die Methode request.getParameter(), um den Wert des Formularparameters zu erhalten.
getParameterValues(): Daten wie checkbox (gleicher Name, aber mehrere Werte) erhalten. Empfangen Sie Array-Variablen, wie checkbox-Typ
getParameterNames():Diese Methode kann die Namen aller Variablen ermitteln und gibt eine Enumeration zurück.
getInputStream():Rufen Sie diese Methode auf, um den Binärdatenstrom vom Client zu lesen.
Hier ist eine einfache URL, und der GET-Method wird verwendet, um die Parameter in der URL zu übermitteln:
http://localhost:8080/testjsp/main.jsp?name=Grund教程网&url=http://ww.oldtoolbag.com
testjsp ist der Projektadresse.
Hier ist der JSP-Code im Datei main.jsp, der die von der Client-Seite gesendeten Formulardaten verarbeitet. Wir verwenden die getParameter()-Methode, um die gesendeten Daten zu erhalten:
<%@ 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>Basistutorial-Website(oldtoolbag.com)</title> </head> <body> <h1>Daten mit dem GET-Verfahren lesen</h1> <ul> <li><p><b>站点名:</b> <%= request.getParameter("name") %> </p></li> <li><p><b>网址:</b> <%= request.getParameter("url")%> </p></li> </ul> </body> </html>
Nächste wir durch den Browser auf http: zugreifen//localhost:8080/testjsp/main.jsp?name=JSP教程&url=http://ww.oldtoolbag.com输出结果如下所示:
以下是一个简单的 HTML 表单,该表单通过GET方法将客户端数据提交 到 main.jsp 文件中:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Basistutorial-Website(oldtoolbag.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>
将以上HTML代码保存到test.htm文件中。 将该文件放置于当前jsp项目的 WebContent 目录下(与 main.jsp 同一个目录)。
Durch den Zugriff http://localhost:8080/testjsp/test.html 提交表单数据到 main.jsp 文件,图如下所示:
在 "站点名" 与 "网址" 两个表单中填入信息,并点击 "提交" 按钮,它将输出结果。
接下来让我们使用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>Basistutorial-Website(oldtoolbag.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>
代码中我们使用 new String((request.getParameter("name")).getBytes("ISO-8859-1"),"UTF-8)来转换编码,防止中文乱码的发生。
以下是test.htm修改后的代码:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Basistutorial-Website(oldtoolbag.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>
Durch den Zugriff http://localhost:8080/testjsp/test.html Senden Sie die Formulardaten an die Datei main.jsp, wie folgt:
复选框 checkbox 可以传递一个甚至多个数据。
以下是一个简单的HTML代码,并将代码保存在test.htm文件中:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Basistutorial-Website(oldtoolbag.com)</title> </head> <body> <form action="main.jsp" method="POST" target="_blank"> <input type="checkbox" name="google" checked="checked"> /> Google <input type="checkbox" name="w3codebox /> Basistutorial-Website <input type="checkbox" name="taobao" checked="checked"> /> 淘宝 <input type="submit" value="Website auswählen"> /> </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>Basistutorial-Website(oldtoolbag.com)</title> </head> <body> <h1>Daten aus den Auswahlkästchen lesen</h1> <ul> <li><p><b>Google ausgewählt:</b> <%= request.getParameter("google")%> </p></li> <li><p><b>Grundlagen-Tutorial-Website ausgewählt:</b> <%= request.getParameter("w3codebox")%> </p></li> <li><p><b>Wird Taobao ausgewählt:</b> <%= request.getParameter("taobao")%> </p></li> </ul> </body> </html>
Durch den Zugriff http://localhost:8080/testjsp/test.html Senden Sie die Formulardaten an die Datei main.jsp, wie folgt:
nach dem Klicken auf "Website auswählen":
Nachfolgend verwenden wir HttpServletRequest des getParameterNames() um alle Formularparameter zu lesen, diese Methode kann die Namen aller Variablen erhalten und gibt eine Enumeration zurück.
Wenn wir ein Enumeration (枚举) haben, können wir die Methode hasMoreElements() aufrufen, um zu bestimmen, ob es noch Elemente gibt, und die Methode nextElement() verwenden, um den Namen jedes Parameters zu erhalten.
<%@ 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>Basistutorial-Website(oldtoolbag.com)</title> </head> <body> <h1>Lesen Sie alle Formularparameter</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>
Hier ist der Inhalt der Datei test.htm:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Basistutorial-Website(oldtoolbag.com)</title> </head> <body> <form action="main.jsp" method="POST" target="_blank"> <input type="checkbox" name="google" checked="checked"> /> Google <input type="checkbox" name="w3codebox /> Basistutorial-Website <input type="checkbox" name="taobao" checked="checked"> /> Taobao <input type="submit" value="Website auswählen"> /> </form> </body> </html>
Jetzt können wir die test.htm-Datei mit dem Browser aufrufen, um Daten zu übermitteln, und das Ausgaberesultat ist wie folgt:
Durch den Zugriff http://localhost:8080/testjsp/test.html Senden Sie die Formulardaten an die Datei main.jsp, wie folgt:
Nachdem Sie "Website auswählen" geklickt haben:
Sie können versuchen, den obigen JSP-Code zur Lesung anderer Objekte zu verwenden, wie z.B. Textfelder, Radio-Buttons oder Dropdown-Listen und andere Formen von Daten.