在发送时从JSP文件中的请求接收空参数

时间:2015-03-16 16:33:10

标签: ajax jsp request

我有一个JSP应用程序。它上传文件,但为此,用户必须使用名称和密码进行身份验证。所以我的JSP文件以:

开头
//0.2.- We get the password
String password = (String) request.getParameter("pass"); // -> This returns NULL
//0.3.- We get the "uvus"
String uvus = (String) request.getParameter("uvus"); //-> This also returns NULL

//More code

所以我试图了解为什么我从这些变量中得到null

我转到我上传的表单,并查找正在发送的数据。使用Firefox调试工具,我看到:

Example of data

事实上,它正在发送。

作为附加信息,我正在建立这样的请求:

var pUvus = document.getElementById("uvus").value;
var pPassword = document.getElementById("pass").value;

var file = document.getElementById("userFile");

var formData = new FormData();
formData.append("upload", file.files[0]);
formData.append("uvus", pUvus);
formData.append("pass", pPassword);

xmlhttp.open("POST","uploadFile.jsp",true);
xmlhttp.send(formData);

最后,我想说我可以在相同的JSP中从应用程序对象获取vars而没有错误,并且在请求对象中接收到另一对JSP文件变量而没有更多问题,所以我认为我的错在我正在构建Ajax请求的方式,但我已经没有更多的线索......

任何人都可以指导我吗?

感谢您的帮助

更新:@rickz询问我如何获取文件并解析请求(在我的问题之后做了什么,尝试从请求范围中获取对象):

List items;
items = servlet_up.parseRequest(request);

for(int i=0;i<items.size();i++)
{

  FileItem item = (FileItem) items.get(i);

  if (! item.isFormField())
  {

1 个答案:

答案 0 :(得分:1)

request.getParameter()不支持多部分/表单数据请求。 如果您使用的是org.apache.commons.fileupload,那么您应该使用类似

的内容
if(item.isFormField()){
    name = item.getFieldName();
    ...                       
}