私は現在、Spring MVC アプリケーションに取り組んでおり、web.xml ファイル内で、すべての受信 URL を単一の DispatcherServlet にマッピングしたときに、効果的にマッピングされた URI を取得できるかどうかを知りたいと思いました。私の懸念を説明する例を次に示します。
import static org.springframework.web.bind.annotation.RequestMethod.*;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HomeController {
@RequestMapping(method={GET})
public String processAllRequest(){
return "viewName";
}
}
web.xml で URL-MAPPING を "/*" として定義したので、すべての着信要求は上記のコントローラー クラスで終了します。たとえば、次の両方のリクエストは、コントローラーの processAllRequest() メソッドによって処理されます。
- myApplicationContext/ホーム
- myApplicationContext/ログアウト
どういうわけか、マップされた URI を取得することは可能ですか? つまり、processAllRequest() の内部に入ると、それが .../home または .../logout に対して呼び出されたかどうかをどのように知ることができますか? メソッドの引数として HttpServletRequest または別のオブジェクトを挿入することにより、この種の情報を取得することは可能ですか?