2017-12-29 51 views
-1

サーブレットを開発してdoGetメソッドをオーバーライドすると、req.getParameter( "myParam")のようにURLに渡されたパラメータの値にアクセスできます。URLはhttp://mysite:8080/APP?myParam=123のようになります。残りWebサービスの場合には (実装はジャージーあると仮定)私はこのServlet 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を取得できるように、ゲットレストサービス(ジャージーを使用)を行うにはどうすればよいですか?あなたがJSONを戻ってきているのでので、この同じ機能をWebサービスとして使用することができ

おかげ

+0

注意:GETメソッドは、クエリのパラメータを渡す必要があるわけではありません。クエリーパラメータを持たない単純なURLでも 'GET'メソッドを使用できます。言ったように、私は確信していません、あなたの実際の質問は何ですか。 – Ravi

答えて

0

。サーブレットの場合、通常、別のページ(ftl、jspなど)をリダイレクトまたはロードしますが、この関数ではJSONを出力として生成することが期待されているため、サービスとしても使用できます。

私たちが通常直面している別の違いは、アプリ内の機能が安全であることと、特定のGETコールにアクセスする前にログインする必要があることです。

ここで認証は必要ありません。GETコールでJSONという出力が得られますので、この特定の機能をWebサービスとしても使用できます。

+0

URLはhttp:// mysite:8080/APP?myParam = 123のようになり、バックエンドで私はこのmyparamを得ることができるように、どのように私はゲットレストサービス(ジャージーを使用して)を作ることができますか? (それは可能ですか?) – BenMansourNizar

+0

jersy apiとlibsをインポートして動作させるための詳細なチュートリアルがあります。 –

+0

'RESTful'のurlパターンとquerystringsの使い方が異なります。 [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

あなたがすでに知っていたら、なぜあなたは質問を投稿しましたか?あなたが質問を投稿したとしても、すでにどこかに存在するいくつかのリンクではなく、あなた自身の回答を投稿する必要があります。明日このリンクが壊れてしまったら? – Ravi

関連する問題