2014-09-27 151 views
0

我創建了InformationServlet,只要我需要一些細節,我可以發送它我想要的(使用AJAX),它會返回給我信息。如何發送和捕獲參數從JavaScript(AJAX請求)到Servlet

我搜索如何做到這一點Ajax和根據: How to send parameter to a servlet using Ajax Call

我用:url: "InformationServlet?param=numberOfPlayers"

但在servlet的請求的屬性不包含我發這樣的參數我想是的不正確的練習:
enter image description here

你可以看到屬性大小爲零

的Servlet:

protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     response.setContentType("text/html;charset=UTF-8"); 
     PrintWriter out = response.getWriter(); 
     try { 
      Gson gson = new Gson(); 
      Engine engine = (Engine)getServletContext().getAttribute("engine"); 
      String responseJson = ""; 

      if(request.getAttribute("numberOfPlayers") != null) 
      { 
       String numberOfPlayers = ""; 
       numberOfPlayers = gson.toJson(String.valueOf(engine.GetNumOfPlayers())); 
       responseJson = numberOfPlayers; 
      } 

      out.print(responseJson); 

     } finally { 
      out.close(); 
     } 
    } 

的JavaScript(AJAX請求):

function getNumberOfPlayersAndPrintSoldiers() 
{ 
     $.ajax({ 
     url: "InformationServlet?param=numberOfPlayers", 
     timeout: 2000, 

     error: function() { 
      console.log("Failed to send ajax"); 
     }, 
     success: function(numberOfPlayers) { 
      var r = numberOfPlayers; 

     } 
    }); 
} 

回答

1

編輯:

你可能想使用getParameter,而不是getAttribute

0因爲URL形式包含參數名稱,然後再參數值

request.getParameter("numberOfPlayers"); 

而且,請注意參數的名字和他的價值順序爲:中

request.getParameter("param"); 

instad。例如:

myurl.html?param=17 

,如果再使用分離器需要更多的參數&簽署

myurl.html?firstName=bob&age=5 
+0

嘗試過,但屬性是STIL爲零 – E235 2014-09-27 10:18:49

+0

大小我糾正我的答案。 – eitank 2014-09-27 10:32:18

相關問題