2012-04-16 8 views
0

私はRESTベースのWebサービスを作っています。{resource}/<id>のような単純なサーブレットでRESTの種類のURLを作成する

まず私は

上記のように、サーブレットのURLを作成する方法
/{resource} 
/{resource}/<id> 
/{resource1}/<id>/{resource2} 
/{resource1}/<id>/{resource2}/<id> 

を次のようにのようなURLを見たいですか..? 私はどのフレームワークも使用しないことを好みます。

+3

ホイールを再改造しないでください。 Netbeansを使ってJAX-RSを見ると、簡単なことがわかります。完全なものではないカスタムソリューションを気にする必要はありません。ウィザードを使用するとすべてがあなたのために作成されます。エンティティを作成し、エンティティからRESTサービスを作成します – DaTroop

+0

REST開発のライブラリがたくさんありますJERSEY、Spring MVCのようなものです。 –

+0

私が間違っている場合は私を修正しますが、ほとんどの場合、フレームワークは要求と応答を遅くすることに気付きました。ほとんどの場合、私たちは何でもすべてのリソースを使用しないためです。 – KuKu

答えて

1

サーブレットAPIは、この種のマッピングを特別にサポートしていません。

あなたは、サードパーティのライブラリなしでそれをしたい場合、あなたは、/{resource}にサーブレットをマッピングrequest.getPathInfo()ように、パスの残りの部分を取得し、その値に基づいて、さらにルーティングを実装する必要があります。

<servlet-mapping> 
    ... 
    <url-pattern>/resource</url-pattern> 
</servlet-mapping> 

を。

public class ResourceServlet extends HttpServlet { 
    public void doGet(HttpServletRequest request, HttpServletResponse response) { 
     String path = request.getPathInfo(); 
     if (path == null) { // It's /resource 
      ... 
     } else if (path.matches("/\\d+")) { // It's /resources/<id> with integer id 
      ... 
     } 
    } 
} 

ただし、ホイールを再作成してJAX-RSの実装を使用しない方がよいでしょう。

+0

私が間違っている場合は私を修正しますが、ほとんどの時間私は彼らが与えるすべてのリソースを使用していないほとんどの時間のために、フレームワークは要求と応答を遅くすることに気づいた。 – KuKu

関連する問題