我不熟悉Java中的Restful Web服务,这是我的第一个Web应用程序,我进行了很多搜索,但每个人都提出了比我需要的更复杂的问题。

我有一个非常简单的带有文本框和提交按钮的html。我的Web服务中还具有POST功能,如下所示:

@POST
@Consumes({MediaType.APPLICATION_FORM_URLENCODED,MediaType.APPLICATION_JSON})
public Response showSearchResult(String incomingData) throws Exception {
    String query = incomingData;
    RepositoryMongo repository = new RepositoryMongo("InvertedIndex", "InvertedIndex", "documents");
    InvertedIndex invertedIndex = new InvertedIndex(repository);
    ArrayList<Posting> result = invertedIndex.processQuery_Posting_Based(query, 10,"1");
    String htmlResult = invertedIndex.getHTMLResult(result);
    return Response.ok(htmlResult).build();
}


问题是我的入库数据=“ query_input = canada + singer&search = search”,而我希望它仅是文本框的内容。我可以解析收到的字符串,但是这样正确吗?有什么办法可以直接让“加拿大歌手”作为输入?如何控制输入类型?

最佳答案

您可以将@FormParam批注用于POST请求,或者将@PathParam批注用于GET请求。这些将参数附加到您的方法中,以指示应从URL(对于GET)或发布的正文(对于POST)中提取参数的值。

查看http://www.vogella.com/tutorials/REST/article.html的7.3节,其中有一个有效的示例。

10-06 03:47