Dies ist ein Artikel über ** "Formular" **, eine der wichtigsten Technologien zum Erstellen von Webanwendungen. Mit Formularen können Benutzer Daten in ihre Webanwendungen eingeben.
--Formale Grundlagen (Formularstruktur, Teile, Erstellung, Datenübertragungsmechanismus)
Ich werde die obigen drei Punkte Schritt für Schritt erklären.
Wenn Sie zuerst den gesamten Code lesen, ist die erste Erklärung leichter zu verstehen. → [So erstellen Sie ein Programm mit einem Formular](# So erstellen Sie ein Programm mit einem Formular)
Mit Formularen können Sie ** die Daten, die Sie auf einer Webseite eingeben, an ein serverseitiges Programm senden. ** ** **
Von hier aus werde ich jedes der vier Elemente erläutern, die die Grundlage des Formulars bilden.
Formulare werden durch Kombinieren mehrerer HTML-Tags erstellt. Ein Formular besteht aus einer Reihe von Eingabeelementen.
1, Textfeld (Eingabe-Tag: Typ Attribut = "Text") 2, Optionsfeld (Eingabe-Tag: Typattribut = "Radio") 3, Registrierungsknopf (Eingabe-Tag: type attribute = "submit")
python
<form action="/example/FormSampleServlet" method="post">
Name:<br>
<input type="text" name="name"><br>//Textfeld
Sex:<br>
Mann<input type="radio" name="gender" value="0">//Radio knopf
Frau<input type="radio" name="gender" value="1">//Radio knopf
<input type="submit" value="Anmeldung">//Anmeldungボタン
</form>
Fügen Sie in das Formular Teile (Steuerelemente) für die Dateneingabe und -übermittlung ein. Beispiel:
java:Name:<br>
<input type="text" name="name">
Teilename: Name Das Erstellen eines Teils ist nur eine Frage des Schreibens eines Tags. Achten Sie auf den Namen des Teils. ** Jedes Teil muss einen eindeutigen Namen zur Identifizierung haben. ** ** **
Das Formular wird mit dem Formular-Tag erstellt. Beachten Sie, dass beim Schreiben eines Teils außerhalb des ** Formular-Tags der Wert dieses Teils nicht gesendet wird **.
java:Name:<br>
<form action="/example/FormSampleServlet" method="post">
//Teile
</form>
Formularsyntax
python
<form action="Ziel" method="Anforderungsmethode(get/post)">
//Teile
</form>
Aktionsattribut: Geben Sie das Ziel an
Für Servlet-Klasse →
Methodenattribut: Geben Sie die Anforderungsmethode an get (GET request) oder post (POST request)
Wenn Sie auf die Schaltfläche "Registrieren" des Formulars klicken, werden die in den Teilen des Formulars eingegebenen Daten im Format "Teilename = Wert" registriert. Dieser "Teilname = Wert" heißt ** Anforderungsparameter **. Verwenden Sie ** GET ** oder ** POST ** als Methode der Anforderung, um die Anforderungsparameter zu senden. Also welches wirst du verwenden? Lassen Sie uns den Unterschied zwischen GET-Anforderung und POST-Anforderung sehen.
GET Anfrage | POST-Anfrage |
---|---|
Holen Sie sich neue Informationen(Suche) | Registrieren Sie die im Formular eingegebenen Daten(Benutzer Registration) |
Speichern und teilen Sie die übermittelten Ergebnisse | Ich möchte keine Daten in der Adressleiste anzeigen |
** Anforderungsparameter werden vom Anwendungsserver in der Instanz "HttpServletRequest" gespeichert ** und an die Zielservletklasse oder JSP-Datei übergeben.
Servlet-Klasse zum Abrufen von Anforderungsparametern
@WebServlet("/FormSampleServlet")
public class FormSampleServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//Geben Sie den Zeichencode des Anforderungsparameters an
request.setCharacterEncoding("UTF-8");
//Anforderungsparameter abrufen
String name=request.getParameter("name");
String gender=request.getParameter("gender");
Erstellen Sie ein Programm, das die folgende Benutzerregistrierung durchführt.
Der Code ist unten.
JSP-Datei
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Benutzer Registration</title>
</head>
<body>
<form action="/example/FormSampleServlet" method="post">
Name:<br>
<input type="text" name="name"><br>
Sex:<br>
Mann<input type="radio" name="gender" value="0">
Frau<input type="radio" name="gender" value="1">
<input type="submit" value="Anmeldung">
</form>
</body>
</html>
Servlet-Klasse
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class FormSampleServlet
*/
@WebServlet("/FormSampleServlet")
public class FormSampleServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//Anforderungsparameter abrufen
request.setCharacterEncoding("UTF-8");
String name=request.getParameter("name");
String gender=request.getParameter("gender");
//Überprüfen Sie die Anforderungsparameter
String errorMsg="";
if (name==null||name.length()==0) {
errorMsg+="Kein Name eingegeben<br>";
}
if (gender==null||gender.length()==0) {
errorMsg+="Geschlecht nicht ausgewählt<br>";
}else {
if (gender.equals("0")) {gender="männlich";}
else if (gender.equals("1")) {gender="Weiblich";}
}
//Zu zeigende Nachrichteneinstellungen
String msg=name+"Herr.("+gender+")Eingetragen";
if (errorMsg.length()!=0) {
msg=errorMsg;
}
//HTML-Ausgabe
response.setContentType("text/html; charset=UTF-8");
PrintWriter out=response.getWriter();
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<meta charset=\"UTF-8\">");
out.println("<title>Benutzer Registration</title>");
out.println("</head>");
out.println("<body>");
out.println("<p>"+msg+"<p>");
out.println("</body>");
out.println("</html>");
}
}
Recommended Posts