我有一个java上传servlet和jsp表单。上传部分工作正常,但我无法在上传 servlet java 代码中获取常规表单值,以便我可以使用它们。现在,我正在尝试使用 request.getParameter("name"); 获取表单数据。但它返回空值。我可以使用 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
最佳答案
对于使用文件上传,您只能在表单字段中获得值。 请求方法不适用于文件上传
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();
}
}
关于java上传servlet获取附加表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27073759/