2016-09-25 4 views
0

サーバーにビットマップといくつかの文字列フィールドを送信しようとしていますが、パラメータが空でないことを完全にチェックしました。これは私のAjaxコードサーブレットにnullを送信する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); 
     } 
}); 

} 

であり、これは私のサーブレットのコードです:

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です。私はそれがサーバーにnullを送信していると思います。誰かが私が間違っていると私に教えてくださいできますか?ありがとうございました。

+0

リクエストパラメータが送信されたブラウザの開始ツールを確認しましたか? –

答えて

0

マルチパートポストではgetParameter()を使用できません。あなたが発見したときにnullを返します。コーディングするサーブレット仕様に応じて、@ MultipartConfigアノテーション(spec 3.0+)またはApache Commons FileUploadライブラリを使用できます。注釈メソッドは組み込みですが、もう少し作業が必要です。 FileUploadライブラリはIMOを使用する方が簡単ですが、明らかに別のライブラリを含める必要があります。私は、どちらがリソースやスピードの面でより効率的であるかはわかりません。興味深いことに、Tomcatを使用している場合は、FileUploadを使用してバックグラウンドで処理します。

関連する問題