0

私はRESTベースのWebサービスを作成しています。

まず、次のようなURLを見たいです

 /{resource}
 /{resource}/<id>
 /{resource1}/<id>/{resource2}
 /{resource1}/<id>/{resource2}/<id>

上記のようにサーブレットのURLを作成する方法..?私はフレームワークを使用したくない。

4

1 に答える 1

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 実装の 1 つを使用する方がよいでしょう。

于 2012-04-16T10:26:19.473 に答える