Servlet Get和Web Service Rest之间的区别是什么? [重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Servlet Get和Web Service Rest之间的区别是什么? [重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

当我开发一个servlet并过度使用doGet方法时。我可以访问URL中传递的参数值,如req.getParameter(“myParam”)。该URL将类似于http://mysite:8080/APP?myParam=123。对于Rest Webservice(假设实现是Jersey)的情况,如果我像这样制作Get Service

@Get
    @Path("myfunction")
    @Compress
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.APPLICATION_JSON)
    public Response myfunction(@QueryParam("myParam") String myParam)

网址就像这个http://mysite:8080/APP/myfunction/123

URl都可以使用curl或postman调用。但是我不明白它们之间的区别是什么?

我如何制作一个获取休息服务(使用球衣),以便URL将像这个http://mysite:8080/APP?myParam=123和后端我可以得到这个myparam?

谢谢

答案

因为你要返回JSON所以这个相同的功能可以用作webservice。在servlet的情况下,我们通常重定向或加载另一个页面(ftl,jsp等),但在此函数中,因为它希望您生成JSON作为输出,所以是的,您也可以将它用作服务。

我们通常面临的另一个不同之处是,应用程序中的功能是安全的,我们需要在访问特定的GET呼叫之前登录。

在这里,您不需要任何身份验证,它是一个简单的GET调用,它输出JSON,因此您也可以将此特定功能用作Web服务。

另一答案

这很简单,只需使用@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”

以上是关于Servlet Get和Web Service Rest之间的区别是什么? [重复]的主要内容,如果未能解决你的问题,请参考以下文章

JavaWeb

Java web部分

Web Service和Servlet的区别

Servlet和Web Service的区别

Web Service和Servlet的区别

Servlet处理GET和POST请求