Hochladen einer Datei in Java Servlet

Ich habe ein Java Dynamic Web Project und benutze TomCat v7.0.

Ich bin neu in Webprojekten und habe nicht ganz verstanden, wie ich eine Datei auf einer meiner JSP-Seiten hochladen kann. Da mein Projekt nur lokal sein soll, dachte ich, ich könnte eine mehrteilige Form verwenden, in der die Person die Datei auswählt (und dieser Teil funktioniert) und später den Dateipfad von meinem Servlet abruft. Ich kann diesen Teil jedoch nicht abschließen, da mir anscheinend nur der Name der Datei und nicht der gesamte Pfad angezeigt wird.

Kann mich jemand in die richtige Richtung weisen? Ich habe mehrere Posts über das Hochladen von Apache-Dateien und das Abrufen von Informationen aus dem mehrteiligen Formular gelesen, aber nichts scheint mir zu helfen.

Wie kann ich den Dateipfad aus einem Formular abrufen oder wie kann ich die hochgeladene Datei zur Verwendung in meinen Java-Klassen abrufen?

Danke im Voraus.

.jsp:

<form method="post" action="upload" enctype="multipart/form-data">
<input type="file" name="filePath" accept="application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"></input>
<input type="submit" value="Enviar"></input>
</form>

Java Servlet:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
    PrintWriter out = response.getWriter();
    out.println("<html><body>");

    try
    {
        List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
        for (FileItem item : items)
        {
            if (item.isFormField())
            {
                // Process regular form field (input type="text|radio|checkbox|etc", select, etc).
                String fieldname = item.getFieldName();
                String fieldvalue = item.getString();

                out.println("<h1>"+fieldname+" / "+fieldvalue+"</h1>");
            }
            else
            {
                // Process form file field (input type="file").
                String fieldname = item.getFieldName();
                String filename = item.getName();
                InputStream filecontent = item.getInputStream();
                String s = filecontent.toString();
                out.println("<h1>"+s+" / "+filename+"</h1>");
                item.write(null);
            }
        }
    }
    catch (FileUploadException e)
    {
        throw new ServletException("Cannot parse multipart request.", e);
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }

    out.println("</body></html>");
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage