找不到从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!
我做错了什么?
答案 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()