如何在 servlet 上访问这个数组?
how to access this array on a servlet?
function getboxvalues(){
var array = [];
$("input:checkbox[name=delbox]:checked").each(function() {
array.push($(this).val());
});
JSON.stringify(array);
console.log(array);
$.ajax({
url: 'Deletestudent',
dataType: 'json',
data: {
object: {"delbox":array}
},
type: 'GET'
});
}
编辑:
这是servlet代码
我可能必须解析我得到的对象,但当我试图让它工作时,大多数人只是建议通过通常的方式访问它。
public class Deletestudent extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Deletestudent() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String[] idlistString = request.getParameterValues("delbox");
response.getWriter().append("Served at: ").append(request.getContextPath());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(request.getParameter("delbox"));
doGet(request, response);
}
}
我尝试通过 request.getparameter 访问它,但它 returns 为 null eventho 我尝试将它记录在 JS 文件中,它作为一个普通数组出现。
您需要使用 POST
方法,因为您正在尝试发送 JSON 数据。
然后你会得到 as request.getparameter as String,但你可能需要再次将其设为 JSON 才能轻松使用它。
你有两个问题:
- 你已经完全忘记了
object
,即使你明确地将它放在你的数据中
- jQuery 遵循 PHP 主义,即用数组值重命名参数,因此它们附加了
[]
而你没有考虑到这一点。
您的 URL 将类似于:
/Deletestudent?object%5Bdelbox%5D%5B%5D=foo&object%5Bdelbox%5D%5B%5D=bar
所以你需要问一些正确的名字。
request.getParameter("object[delbox][]"));
function getboxvalues(){
var array = [];
$("input:checkbox[name=delbox]:checked").each(function() {
array.push($(this).val());
});
JSON.stringify(array);
console.log(array);
$.ajax({
url: 'Deletestudent',
dataType: 'json',
data: {
object: {"delbox":array}
},
type: 'GET'
});
}
编辑: 这是servlet代码 我可能必须解析我得到的对象,但当我试图让它工作时,大多数人只是建议通过通常的方式访问它。
public class Deletestudent extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Deletestudent() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String[] idlistString = request.getParameterValues("delbox");
response.getWriter().append("Served at: ").append(request.getContextPath());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(request.getParameter("delbox"));
doGet(request, response);
}
}
我尝试通过 request.getparameter 访问它,但它 returns 为 null eventho 我尝试将它记录在 JS 文件中,它作为一个普通数组出现。
您需要使用 POST
方法,因为您正在尝试发送 JSON 数据。
然后你会得到 as request.getparameter as String,但你可能需要再次将其设为 JSON 才能轻松使用它。
你有两个问题:
- 你已经完全忘记了
object
,即使你明确地将它放在你的数据中 - jQuery 遵循 PHP 主义,即用数组值重命名参数,因此它们附加了
[]
而你没有考虑到这一点。
您的 URL 将类似于:
/Deletestudent?object%5Bdelbox%5D%5B%5D=foo&object%5Bdelbox%5D%5B%5D=bar
所以你需要问一些正确的名字。
request.getParameter("object[delbox][]"));