ajax向servlet发送null

时间:2016-09-25 01:03:12

标签: java jquery ajax servlets

我正在尝试向服务器发送一个位图和一些字符串字段,并且我已经彻底检查了没有参数为空。这是我的ajax代码

var URL = "ProfileUpdater";

var username = $("#cp-setup-username").val();
var email = $("#cp-setup-email").val();
var birthday = $("#cp-setup-birthday").val();
var aboutYou = $("#cp-setup-about-you").val();    
var intrests = $("#cp-setup-intrests").val();
var phoneNumber = $("#cp-setup-phone-number").val();
var sessionid = $.cookie('WhitePages_SessionID');
var session_username = $.cookie('WhitePages_Username');


var legal = emptyCheck(username,email,birthday,aboutYou,intrests,phoneNumber);
alert(username +" " + email + "  " + birthday +" " + aboutYou + "   "  +intrests + "  " + phoneNumber  +"   "+ sessionid +"  " + session_username);

alert(result);

if(legal){
    alert(sessionid + "  " + session_username) ;     
    alert("about call server");
     $.ajax({
        type:'POST',
        url : URL,
        processData:'false',
        contentType:'false',

        data:{Username:username,Email:email,Birthday:birthday,AboutYou:aboutYou,Intrests:intrests,PhoneNumber:phoneNumber,sessionid:sessionid,username:session_username,Image:result,FieldsChanged:fieldsChanged,isMultiPart:isMultiPart},


        success:function(data){
            alert("success");
            alert(data);
        }
 });

}

这是我的servlet代码:

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ProfileUpdater extends HttpServlet {



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


             String user = request.getParameter("Username");
              String sessionid  = request.getParameter("sessionid");
              String username = request.getParameter("username");

               //sessionid and username is null

              PrintWriter out = response.getWriter();
              out.println(sessionid +"   " + username +    "  " + user);
              System.out.println("hello  " + username + "your session id is " +sessionid + "       " + user );
    }



}

我已在我的脚本中添加警报但它们不是空的,但在响应时它为空。我的意思是我认为它正在向服务器发送null。有人可以告诉我哪里出错了???三江源。

1 个答案:

答案 0 :(得分:0)

您不能将getParameter()与多部分帖子一起使用。它只是在您发现时返回null。根据您编码的servlet规范,您可以使用@MultipartConfig注释(规范3.0+)或Apache Commons FileUpload库。注释方法是内置的,但需要更多的工作; FileUpload库更容易使用IMO,但显然需要包含另一个库。我不确定在资源或速度方面哪个更有效率。有趣的是,如果您正在使用Tomcat,它会使用FileUpload来处理后台的事情。