找不到从HttpRequest获取参数值的正确方法:

时间:2013-09-27 13:53:06

标签: java jquery html servlets

找不到从HttpRequest获取参数值的正确方法:

这是我的JQuery文件:

$(document).ready(function() {
var currBoard;
var currCell;
$(".cell").click(function() {

    Cardboard = $ (this). attr ('name');
    currCell = $(this).attr('id');
    $.get('InGameServlet', function(responseText) {
        $("#"+currCell).text(responseText);

        alert("cell num:" + currCell + " Board: " + currBoard);
    });
});

});

这是我的Servlet:

@WebServlet(name = "InGameServlet", urlPatterns = {"/InGameServlet"})
public class InGameServlet extends HttpServlet {
   protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");

    printSign(request.getParameter("currBoard"), request.getParameter("currCell"),     response);
}

在调试模式下,我看到我从请求中获得的值是NULL!

我做错了什么?

4 个答案:

答案 0 :(得分:1)

您正在呼叫getAttribute()而不是getParameter()

请求参数作为请求参数存储在HttpServletRequest

使用

String value = request.getParameter("your parameter key");

这显然取决于您的请求是否实际包含请求参数。 Here's how you do that with jQuery's get().

答案 1 :(得分:1)

您没有传递ajax请求中的值

$(".cell").click(function() {

    Cardboard = $ (this). attr ('name');
    currCell = $(this).attr('id');
    $.get('InGameServlet?currBoard="+Cardboard+"currCell="+currCell', function(responseText) {  //passing data as quesry param.
        $("#"+currCell).text(responseText);

        alert("cell num:" + currCell + " Board: " + currBoard);
    });
});

然后在servlet中获取请求参数为

request.getParameter("currBoard");

所以它变成了,

printSign(request.getParameter("currBoard"),request.getParameter("currCell"),response);

答案 2 :(得分:0)

您似乎没有在$.get ajax调用中传递任何参数。 此外,参数是通过getParameter()方法而不是getValue()获得的。

答案 3 :(得分:0)

首先,您需要使用请求发送参数:

var data = {
    currBoard: $(this).attr('name'),
    currCell: $(this).attr('id')
};
$.get('InGameServlet', data, function (responseText) {
    $("#" + currCell).text(responseText);

    alert("cell num:" + currCell + " Board: " + currBoard);
});

然后使用request.getParameter()而不是getAttribute()

检索它们