2017-12-29 17 views
-1

서블릿을 개발하고 doGet 메소드를 오버라이드 할 때 req.getParameter ("myParam")와 같이 URL에 전달 된 매개 변수 값에 액세스 할 수 있습니다. URL은 http://mysite:8080/APP?myParam=123과 같습니다. 나머지 Webservice를하는 경우에 대한 (구현 뉴저지 가정하자) 내가이서블릿 Get과 WebSerivce Rest Get의 차이점은 무엇입니까?

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

같은 가져 오기 서비스 URL은 모두 URL이 컬 또는 우편 배달부 사용하여 호출 할 수있는이 http://mysite:8080/APP/myfunction/123

처럼 될 것입니다 수 있도록합니다. 하지만 나는 그들 사이의 차이점을 이해하지 못했습니까?

URL이 http://mysite:8080/APP?myParam=123이고 백엔드에서이 myparam을 얻을 수 있도록 저지 서비스 받기 (저지 사용)를 어떻게 할 수 있습니까?

감사

+0

참고로 'GET'메서드는 쿼리 매개 변수를 전달해야 함을 의미하지 않습니다. 검색어 매개 변수가없는 간단한 URL은 'GET'메소드를 사용할 수도 있습니다. 말했듯이, 나는 당신의 실제적인 질문이 무엇인지 확실하지 않습니다. – Ravi

답변

0

당신이 JSON을 반환하고 있기 때문에 지금이 같은 기능은 웹 서비스로 사용할 수 있습니다. 서블릿의 경우 일반적으로 다른 페이지 (ftl, jsp 등)를 리디렉션하거나로드하지만 여기서는이 함수에서 JSON을 출력으로 생성해야하므로 서비스로 사용할 수 있습니다.

우리가 일반적으로 직면하는 또 다른 차이점은 앱 내의 기능이 안전하며 특정 GET 호출에 액세스하기 전에 로그인해야한다는 것입니다.

여기서 인증을 필요로하지 않으며 GET 호출로 JSON을 출력하므로이 특정 기능을 웹 서비스로 사용할 수 있습니다.

+0

URL을 http : // mysite : 8080/APP? myParam = 123과 같이 만들 수 있도록 저지 서비스를 만들 수 있나요? 백엔드에서이 myparam을 얻을 수 있습니까? (가능합니까?) – BenMansourNizar

+0

jersy api 및 libs를 가져와야 제대로 작동하도록 자세한 자습서가 있습니다. –

+0

'RESTful'URL 패턴은 쿼리 문자열 사용과 다릅니다. [Representational_state_transfer # Relationship_between_URL_and_HTTP_methods] (https://en.wikipedia.org/wiki/Representational_state_transfer#Relationship_between_URL_and_HTTP_methods) –

-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” 
+0

lol, 당신이 이미 알고 있었다면, 왜 당신은 질문을 게시 했습니까? 당신도 질문을 게시, 그럼 당신은 자신의 답변을 이미 어딘가에 존재하는 몇 가지 링크를 게시해야합니다. 만약이 링크가 내일 망가 졌다면? – Ravi

관련 문제