java upload servlet获取其他表单数据

时间:2014-11-22 03:34:26

标签: java forms jsp servlets upload

我有一个java上传servlet和jsp表单。上传部分工作正常但我无法在上传servlet java代码中获取常规表单值,以便我可以使用这些。现在,我正在尝试使用request.getParameter获取表单数据(" name");但它返回null值。我可以使用item.getFieldName()和item.getFieldValue()获取字段值,但这些在item.iterator中的其他进程中并不真正可用,但这些在后续操作中不可用。例如,我想提取电子邮件地址字段值,以便我可以在上传servlet的末尾发送电子邮件。如果我不能将它变成一个字符串或变量,我就无法使用这些数据。有什么建议吗?

jsp文件:

  jsp form:
     <form method="post" action="UploadServlet" enctype="multipart/form-data">
         Username: <input type="text" name="username" value="username"/><br>
         E-mail: <input type="email" name="email" autocomplete="on"><br>
         <br>
         Select file to upload:<input type="file" name="uploadFile" /><br>
         <input type="submit" value="Upload" />
     </form>

Java file:   

    UploadServlet.java

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

             String id = request.getParameter("username");
             System.out.println(id); //returns null value
             String password = request.getParameter("email");
             System.out.println(password);//returns null value

1 个答案:

答案 0 :(得分:1)

对于使用文件上传,您只能在表单字段中获取值。 请求方法在文件上传中不起作用

if (ServletFileUpload.isMultipartContent(request)) {                
     List<FileItem> multipart = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);

      for (FileItem item : multipart) {
            if (!item.isFormField();
{
      //Your upload file code.
 }
if (item.isFormField()) { 
 
if (item.getFieldName().equals("username")) {
     String id = item.getString();
  }else if (item.getFieldName().equals("email")) {
  String password = item.getString();
        }
}