Servlet Get和WebSerivce Rest之间的区别是什么?

时间:2017-12-29 07:51:36

标签: java rest curl servlets jersey

当我开发一个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?

由于

2 个答案:

答案 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”