使servlet在后台工作

时间:2014-02-18 06:03:50

标签: java jsp servlets

我有一个上传sevlet的文件,以及我的JSP上的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");  
  }  
}  

}

1 个答案:

答案 0 :(得分:1)

你可以使用Ajax,

通过Ajax Call上传文件,

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