【问题标题】:How to send integer as parameter to servlet using $.ajax get?如何使用 $.ajax get 将整数作为参数发送到 servlet?
【发布时间】:2015-05-26 05:03:19
【问题描述】:

我需要使用 java 从我的 Web 应用程序中从我的模型项目中获取一个属性,但我还需要发送整数作为参数。我阅读了 JQuery API Doc,但我对 AJAX 和 JQuery 很陌生,我仍然觉得很难理解。

这是我的代码:

$(document).ready(function () {
// Locate HTML DOM element with ID "somebutton" and assign the following function to its "click" event...
    $.get('ServletControlB', function (responseText) { // Execute Ajax GET request on URL of "someservlet" and execute the following function with Ajax response text...
        $('#divnombre').text(responseText);         // Locate HTML DOM element with ID "somediv" and set its text content with the response text.
    });
});

这是我的 ServletControlB doGet 函数:

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    processRequest(request, response);
    int x; // x = parameter recieved from AJAX
    //data is an instance from the Model class
    String text = data.getNews().getNewsInPosition(x).getTitle(); //I send correct postition to my ArrayList

    response.setContentType("text/html");  // Set content type of the response so that jQuery knows what it can expect.
    response.setCharacterEncoding("UTF-8"); 
    response.getWriter().write(text);
}

我该如何解决这个问题?有没有更好的方法来解决这个问题?

【问题讨论】:

    标签: java jquery ajax servlets


    【解决方案1】:

    尝试使用data object 之类的jquery.get()

    $(document).ready(function () {
        $.get('ServletControlB',{id:1}, //<-- data object having id as key
            function (responseText) {
              $('#divnombre').text(responseText);
        });
    });
    

    而在java中使用,

    int x = Integer.parseInt(request.getParameter("id"));
    

    【讨论】:

      【解决方案2】:

      您可以将作为字符串接收的请求参数解析为整数。

      String x = request.getParameter("yourParameterName");   //get the parameter as String
      int x1 = Integer.parseInt(x); //set the parameter here 
      

      【讨论】:

        【解决方案3】:

        当您从 jquery 发送 GET 请求时,请在 URL 中附加查询参数:

         $.get('ServletControlB?yourparam=paramValue', function (responseText) 
        

        您可以在此处提到的 servlet doGet 中检索:

         String yourParamValue = request.getParameter("yourparam");   
        

        【讨论】:

          【解决方案4】:
          $(document).ready(function () {
          // Locate HTML DOM element with ID "somebutton" and assign the following function to its "click" event...
              $.get('ServletControlB?x=' + valueOfX, function (responseText) { // Execute Ajax GET request on URL of "someservlet" and execute the following function with Ajax response text...
                  $('#divnombre').text(responseText);         // Locate HTML DOM element with ID "somediv" and set its text content with the response text.
              });
          });
          

          在您的控制器中执行以下操作

          @Override
          protected void doGet(HttpServletRequest request, HttpServletResponse response)
                  throws ServletException, IOException {
              processRequest(request, response);
              int x = request.getParameter("x").toString() ; 
              //data is an instance from the Model class
              String text = data.getNews().getNewsInPosition(x).getTitle(); //I send correct postition to my ArrayList
          
              response.setContentType("text/html");  // Set content type of the response so that jQuery knows what it can expect.
              response.setCharacterEncoding("UTF-8"); 
              response.getWriter().write(text);
          }
          

          【讨论】:

            【解决方案5】:

            我认为你必须像下面这样改变你的前端。

            $.get('ServletControlB',{ param: '1' }, function (responseText) { 
                    $('#divnombre').text(responseText);        
                });
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2012-10-25
              • 2013-01-26
              • 1970-01-01
              • 1970-01-01
              • 2012-08-21
              • 2020-08-11
              • 1970-01-01
              相关资源
              最近更新 更多