如何从servlet页面中的ajax请求获取数据?

问题描述:

如何从servlet页面中的ajax请求获取数据。在这里我通过$.ajax来调用servlet。如何从servlet页面中的ajax请求获取数据?

var dataRequestObject= {}; 
       dataRequestObject= {Username:uname,Password:pword,Domain:domain,WindowsUser:windowsuser}; 

var dataRequestHeader= {}; 
       dataRequestHeader= {Username:uname,Password:pword,Domain:domain,WindowsUser:windowsuser}; 


    $.ajax({ 
      type:'POST', 
      url:'http://localhost:8090/SampleServlet1/serv', //calling servlet  
      cache:false, 
      header:dataRequestHeader, 
      data:dataRequestObject, 
      success:function(){ alert("Request Done");}, 
      error:function(xhr,ajaxOptions){ 
       alert(xhr.status + " :: " + xhr.statusText); 
       } 
      }); 

我需要这些数据和标题在setvlet页面。

首先,header选项无效。它需要是headers。另请参阅jQuery.ajax() documentation

您可以使用HttpServletRequest#getHeader()通过名称获取各个请求标题。

String headerUsername = request.getHeader("Username"); 
String headerPassword = request.getHeader("Password"); 
String headerDomain = request.getHeader("Domain"); 
String headerWindowsUser = request.getHeader("WindowsUser"); 
// ... 

您可以使用HttpServletRequest#getParameter()通过名称获取各个请求参数。

String paramUsername = request.getParameter("Username"); 
String paramPassword = request.getParameter("Password"); 
String paramDomain = request.getParameter("Domain"); 
String paramWindowsUser = request.getParameter("WindowsUser"); 
// ... 

但是我不知道它是多么有用重复过头和参数的数据...

+0

@BalusC:谢谢您的回答,但我得到空值 – selladurai 2011-05-18 12:46:16

+3

你解决'头'选项是'headers'?要在JavaScript端进行调试,请使用[Firebug](http://getfirebug.com)。为了在servlet端进行调试,可以通过'HttpServletRequest#getHeaderNames()'获取所有头名称,并通过'HttpServletRequest#getParameterNames()'获取所有参数名称。 – BalusC 2011-05-18 12:47:58

+0

@BalusC:谢谢你的回答。现在我得到了值 – selladurai 2011-05-18 13:08:05