小编典典

使servlet在后台工作

jsp

我在JSP上有一个文件上传sevlet和UI。

<form method="post" action="mygeco" enctype="multipart/form-data" style="position: absolute; left: 30%; bottom: 2%;">
<input type="file" name="dataFile" id="fileChooser" />&nbsp;
<input type="submit" value="Upload" multiple="multiple" />
</form>

文件上传是在我的dopost方法上完成的,并且我的doget()方法还有其他代码,因此,当用户在我的jsp页面上按下上载按钮时,我希望上载在后台进行,而用户仍停留在jsp上页面并在上传完成后返回警报,我该怎么办?

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
{
    // TODO Auto-generated method stub

      boolean isMultipart = ServletFileUpload.isMultipartContent(request);  
      response.setContentType("text/html");

      if (isMultipart) 
      {  
          // Create a factory for disk-based file items  
          FileItemFactory factory = new DiskFileItemFactory();  
          // Create a new file upload handler  
          ServletFileUpload upload = new ServletFileUpload(factory);  
          try 
          {  
              // Parse the request  
              List items = upload.parseRequest(request);  
              Iterator iterator = items.iterator();  
              System.out.println("starting saver");
              while (iterator.hasNext()) 
              {  
                  FileItem item = (FileItem) iterator.next();  
                  if (!item.isFormField())  
                  {  
                      String fileName = item.getName();      
                      String root = getServletContext().getRealPath("/");  
                      File path = new File("/u/poolla/workspace/FirstServlet/");  
                      if (!path.exists())  
                      {  
                          boolean status = path.mkdirs();  
                      }  
                      File uploadedFile = new File(path + "/" + fileName);  
                      System.out.println(uploadedFile.getAbsolutePath());  
                  if(fileName!="")  
                      item.write(uploadedFile);  
                  else  
                  System.out.println("file not found");  
                  System.out.println("<h1>File Uploaded Successfully....:-)</h1>");  
              }  
              else  
              {  
                  String abc = item.getString();  
                  System.out.println("<br><br><h1>"+abc+"</h1><br><br>");  
              }  
          }  
      } 
      catch (FileUploadException e) 
      {  
          System.out.println(e);  
      } 
      catch (Exception e) 
      {  
          System.out.println(e);  
      }  
  }  
  else  
  {  
      System.out.println("Not Multipart");  
  }  
}

}

阅读 293

收藏
2020-06-08

共1个答案

小编典典

您可以为此使用Ajax,

通过Ajax Call上传文件,

http://abandon.ie/notebook/simple-file-uploads-using-jquery-
ajax

2020-06-08