我有一个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
答案 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();
}
}