2016-11-17 6 views
1

サーブレットでパス変数を取得したいとします。 urlがwww.demo.com/123/demoであるとします。文字列の操作操作を行わずに、パスから123値を取得します。サーブレットでパス変数の値を取得する方法

注:次のサーブレットにはweb.xml設定がありません。私のコードは:

@WebServlet(urlPatterns = { "/demo" }) 
public class DemoServlet extends HttpServlet { 

    public DemoServlet() 
    { 
     super(); 
    } 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException 
    { 
     doPost(request,response); 
    } 

    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException 
    { 
     sysout("demo");  
    } 
} 

答えて

0

あなたが参照しているURLの部分は「コンテキスト」です。これを得るにはrequest.getContextPath()を使用してください。あなたの例の場合、これは/123を返します。 を正確に123にする場合は、先頭のスラッシュを削除する必要があります。 documentationから

は 要求のコンテキストを示しリクエストURIの一部を返します。コンテキストパスは常にリクエストURIの最初に来ます。 パスは「/」文字で始まり、「/」 文字で終了しません。デフォルト(ルート)コンテキストのサーブレットの場合、このメソッド は ""を返します。コンテナはこの文字列をデコードしません。

+0

関連項目:http://stackoverflow.com/a/21046620/446738 – worpet

+0

申し訳ありませんが、私は実際にはURLはこのURL www.demo.com/test/123/demo.Inコンテキストパスがテストされている間違っ言及しましたしかし、私はテストとデモの間に123のプレゼントを持っていきたいと思っています。春には@pathparamアノテーションでこれを行うことができます。しかし、sevletではどうやってやるべきかわかりません。これが問題です。 – pavithran

+0

上記のリンクは、URLの一部を取得するすべてのメソッドを示しています。基本的なString操作をしなくても、探しているものを正確に得る方法はありません。 – worpet

関連する問題