私はRESTベースのWebサービスを作成しています。
まず、次のようなURLを見たいです
/{resource}
/{resource}/<id>
/{resource1}/<id>/{resource2}
/{resource1}/<id>/{resource2}/<id>
上記のようにサーブレットのURLを作成する方法..?私はフレームワークを使用したくない。
サーブレット 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 つを使用する方がよいでしょう。