Загрузка файла в сервлете Java

У меня есть Java Dynamic Web Project, и я использую TomCat v7.0.

Я новичок в веб-проектах, и я не совсем понял, как я могу загрузить файл на одной из моих страниц JSP. Так как мой проект должен быть только локальным, я подумал, что мог бы использовать многочастную форму, в которой человек выберет файл (и эта часть подходит), а затем получит путь к файлу из моего сервлета. Я не могу закончить эту часть, хотя, кажется, она дает мне только имя файла, а не весь его путь.

Кто-нибудь может указать мне правильное направление? Я прочитал несколько постов о загрузке файлов Apache и получении информации из многочастной формы, но, похоже, мне ничего не помогло.

Как я могу получить путь к файлу из формы или, альтернативно, как я могу получить загруженный файл для использования в моих классах Java?

Заранее спасибо.

.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:

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>");
}

Ответы на вопрос(1)

Ваш ответ на вопрос