2012-01-09 1 views
0

標準のサーブレットweb.xml構成で、以下のようなSpringのフレームワークでURLマッピングを行いたいとします。標準のサーブレットとweb.xmlを使用して、SpringやRESTfulのURLをマップするにはどうすればいいですか

@RequestMapping(value="/students/{username}", method=RequestMethod.GET) 
    public String deleteSpitter(@PathVariable String username) { 
    ... 
    ... 
    } 

私は、これらの2のようなURLマッピングをしたいと思います:

/学生/マイク

/学生/ジョン・

は、私はまた、 "マイク" を読み取ることができ、同じサーブレットにマップします何らかの形でパラメータとして「John」を使用します。それは例のように複数のレベルに拡張することができるなら、それは私にとって非常に有用である可能性の下:

/学生/ {schoolname}/{studentname} のような:

/学生/マギル/マイク

/学生/ UBC /ジョン・

答えて

1

あなたはワイルドカードパスに標準サーブレットをマッピングし、リクエストのパス情報部分にアクセスすることができますHttpServletRequest.getPathInfo()メソッドを使用します。

サーブレットは、この

package com.acme; 

public class TestServlet extends HttpServlet { 

    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     String info = request.getPathInfo(); 
    } 

} 

のようなパス情報を取得する必要があり、あなたが「/テスト/マギルURLを要求する場合は、この

<servlet> 
    <servlet-name>test-servlet</servlet-name> 
    <servlet-class>com.acme.TestServlet</servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>test-servlet</servlet-name> 
    <url-pattern>/test/*</url-pattern> 
</servlet-mapping> 

ようなあなたのweb.xmlにサーブレットをマップする必要があります/ mike 'パス情報は'/mcgill/mike 'になります。パス情報の解析はあなた次第です。

Java EE 6準拠のコンテナを使用する場合は、JAX-RS specificationを参照して、RESTful Webサービスを構築する必要があります。

1

JAX-RS(別名Jersey)は、サーブレットのアプリでこのような何かを行うことができます(ないだけサーブレットが)

関連する問題