0

小さな Java サーブレットを作成し、URI によってコンテンツを動的にマップしたいと考えています。たとえば、誰かが次の URI を呼び出した場合http://example.com/yell/2013-08-01/first-article、私のサーブレットはデータベースから日付とタイトルでコンテンツを取得し、それをクライアントに応答する必要があります。

これを実装するための「正しい」パターンについてはわかりません。私の考えは、で聞いて 、 )で<url-pattern>/yell/*</url-pattern>パスを取得し、文字で分割することでした。これはよくあるパターンですか?何を提案しますか?RESTは「正しい」方法ではないと思いますか?小さな例は create です。ヒントをありがとう!request.getRequestURI('/'

4

3 に答える 3

2

サーブレットを手動で作成する特定の理由がある場合は、その方法でうまくいくはずです。一方、Spring MVCシステムでは、起動に追加のセットアップが必要ですが、この種のタスクは非常に簡単です。aDateと a String(または 2 つStringの s) を受け取る通常の Java メソッドを記述し、それに で注釈を付ける@RequestMappingだけです。終わった。

于 2013-08-02T16:35:17.020 に答える
0

正規表現を使用して、日付と記事の名前を抽出できます。

String regExp = "yell\\/(\\d{4}-\\d{2}-\\d{2})\\/(.*)";
Pattern pattern = Pattern.compile(regExp);
Matcher matcher = 
pattern.matcher("yell/2013-08-01/first-article");
if( matcher.matches() ){
    // date
    String date = matcher.group(1);
    // article name
    String articleName = matcher.group(2);
}
于 2013-08-02T17:15:44.100 に答える
0

REST を使用する他のソリューション、Spring または Java EE を使用できます。Java EE を選択した場合、glassfish のような Java EE をサポートするアプリケーション サーバーが必要です。Apache tomcat は Java EE アプリケーションをサポートしていません。

次に、次のようなチュートリアルに従うことができます。

http://www.vogella.com/articles/REST/article.html

コードは次のようになります。

@Path("yell/{date}/{articleName}")
public class RestService {
    @GET
    @Produces("application/json")
    public String getJson(@PathParam("date") String date, 
      @PathParam("articleName") String articleName) {
        return "{ \"content\" : \"// TODO\" }";
    }
}
于 2013-08-02T17:48:00.180 に答える