当我开发一个servlet并覆盖doGet方法时。我可以访问URL中传递的参数值,如req.getParameter(" myParam")。该URL将类似于{{3} }。 对于Rest Webservice的情况(假设实现是泽西岛),如果我像这样制作获取服务
@Get
@Path("myfunction")
@Compress
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response myfunction(@QueryParam("myParam") String myParam)
网址将如下http://mysite:8080/APP?myParam=123
可以使用curl或postman调用URl。但我不明白它们之间的区别是什么?
我如何制作一个获取休息服务(使用平针织),以便URL就像这样http://mysite:8080/APP/myfunction/123,在后端,我可以得到这个myparam?
由于
答案 0 :(得分:0)
由于您要返回JSON
,因此可以将此相同功能用作Web服务。在servlet的情况下,我们通常重定向或加载另一个页面(ftl,jsp等),但是在这个函数中,因为它希望你生成JSON作为输出,所以是的,你也可以将它用作服务。
我们通常面临的另一个不同之处是,应用内的功能是安全的,我们需要在访问特定的GET
电话之前登录。
在这里,您不需要任何身份验证,它是一个简单的GET
调用,它输出JSON
,因此您也可以将此特定功能用作Web服务。
答案 1 :(得分:-1)
这很简单,只需使用@queryparam就可以了。 示例:
import java.util.List;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Response;
@Path("/users")
public class UserService {
@GET
@Path("/query")
public Response getUsers(
@QueryParam("from") int from,
@QueryParam("to") int to,
@QueryParam("orderBy") List<String> orderBy) {
return Response
.status(200)
.entity("getUsers is called, from : " + from + ", to : " + to
+ ", orderBy" + orderBy.toString()).build();
}
}
the URL pattern will be like
URI Pattern : “users/query?from=100&to=200&orderBy=age&orderBy=name”