通过httpservlet请求传递其他参数

时间:2013-07-29 01:50:36

标签: json servlets jax-rs

函数deleteGroup()删除一个组,此方法的参数之一为groupDN。在前端,我使用jquery来指定HTTP删除请求。我之前通过附加URL来发送groupDN。我现在想尝试发送嵌入HttpServletRequest的此参数。前端和后端的代码如下。有人可以指导我在请求中发送/接收其他参数的正确方法吗?

前端

function removeGroup(groupDN) {

var deleteGroupDetails=new Object();
deleteGroupDetails.groupDN=groupDN;

jQuery.ajax({
    type : 'DELETE',
    url : 'api/groupService/deleteGroup,
    dataType : 'json',
    data : JSON.stringify(deleteGroupDetails),
    contentType : 'application/json',
    async: false,
    success : function(response) {
        utilDisplayMessage(response,"SUCCESS");
        window.location.reload();
    },
    error : function(obj, error, errormsg) {
        utilDisplayMessage(obj.responseText,"ERROR");
    }
});
}

deleteGroupDetails包含groupDN参数,我认为我可以将其与请求一起传递。

Java的后端

@DELETE
@Path("deleteGroup")
@Produces({MediaType.APPLICATION_JSON})
public String deleteGroup(@Context HttpServletRequest request) throws Exception {

String groupDN = request.getParameter("groupDN");
}

1 个答案:

答案 0 :(得分:0)

不要将请求正文与HTTP DELETE请求一起使用。您尝试做的不是REST而是通过HTTP进行RPC(远程过程调用)。不要这样做。

HTTP DELETE谓词告诉服务器删除URI标识的资源。所以,如果你这样做

DELETE /path/to/resources/123

此URI标识的资源将被删除。

如果要使用一个 DELETE请求删除服务器上的多个实体,请将您的资源URI设计为实体的集合。例如:

DELETE /path/to/resources/?groupDN=foo

可能意味着:删除所有与过滤器groupDN=foo匹配的实体。