sample.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Sample</title>
</head>
<body>
<form id="form">
Username : <input type="text" id="username" name="username"><br>
Password : <input type="password" id="password" name="password"><br>
Image : <input type="file" id="image" name="image" accept="image/*"><br>
<input type="submit" value="send">
</form>
</body>
<script type="text/javascript" src="sample.js"></script>
</html>
sample.js
//Formularobjekt erstellen
var form = document.getElementById("form");
//Was tun, wenn das Übermittlungsereignis auftritt?
form.addEventListener("submit", function(event) {
//Entfernen Sie die Standardfunktion des Formulars und verwalten Sie es mit JavaScript
event.preventDefault();
check();
});
function check() {
//Holen Sie sich den Wert des Formulars
var username = document.getElementById("username").value;
var password = document.getElementById("password").value;
var image = document.getElementById("image").value;
//Senden, wenn eingegeben
if (username != "" && password != "" && image != "") {
sendData();
} else {
alert("Please input all item.");
}
}
function sendData() {
//Erstellen eines FormData-Objekts
var formData = new FormData(form);
//Senden Sie eine HTTP-Anfrage mit XMLHttpRequest
var req = new XMLHttpRequest();
//Verarbeitung nach Abschluss des Sendens / Empfangens
req.addEventListener("load", function(event) {
if (req.responseText == "done") {
//Verarbeitung bei erfolgreicher Verarbeitung
alert("Succeeded.");
} else {
alert("Failed to send.");
}
});
//Verarbeitung bei fehlgeschlagenem Senden / Empfangen
req.addEventListener("error", function(event) {
alert("Error");
});
//Einstellungen für HTTP-Anforderungen
req.open("POST", "/sample/SampleServlet"); // /Anwendungsname/Servlet-Name
//Anfrage senden
req.send(formData);
}
SampleServlet.java
package controller;
import java.io.File;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
@WebServlet("/SampleServlet")
public class SampleServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public SampleServlet() {
super();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
//Antworttext
String responseText = "done";
//Erstellen Sie ServletFileUpload aus DiskFileItemFactory
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload sfu = new ServletFileUpload(factory);
try {
//Speichern Sie die Daten des Anforderungsformulars in einer Liste
List list = sfu.parseRequest(request);
for (Object o : list) {
//Behandeln Sie alle Formulardaten als FileItem
FileItem item = (FileItem) o;
//Verzweigen Sie abhängig davon, ob FileItem ein Feld oder eine Datei ist
if (item.isFormField()) {
//Rufen Sie für Felder den Feldnamen und den Wert ab
// (In der Form<input name="Feldname" value="Eingaben eingegeben")
String fieldName = item.getFieldName();
String value = item.getString();
if (fieldName.equals("username")) {
//Verarbeitung von Benutzernamen
System.out.println("username : " + value);
} else if (fieldName.equals("password")){
//Passwortverarbeitung
System.out.println("password : " + value);
}
} else {
File file = new File(item.getName());
try {
String dirPath = "Ziel zum Speichern der Bilddatei";
String filePath = dirPath + File.separator + file.getName();
//Bilddatei speichern
item.write(new File(filePath));
} catch (IOException e) {
e.printStackTrace();
responseText = "error";
} catch (Exception e) {
e.printStackTrace();
responseText = "error";
}
}
}
} catch (FileUploadException e) {
e.printStackTrace();
responseText = "error";
}
//Antwort senden
response.getWriter().print(responseText);
}
}
Wenn nicht eingegeben
Wenn alle Elemente eingegeben wurden
JavaScript
Servlet
Recommended Posts