次のような restFull Web サーバーを構築する方法を理解しようとしています。
1: / に移動するときに単一の index.html ファイルを提供する
2: 他のすべての URL は、コントローラーによって安静にキャッチされます。たとえば、/invoke1 -> "/invoke1" のリクエスト マッピングに到達します。
問題:
まず第一に、Spring Dispatcher には HTML ページの提供に関する奇妙なフォールアウトがあります (私はリソースについて<mvc:resources mapping
話しているのではなく、JSP ではなく HTML ページの提供について話しているのです)。
次のようにデフォルトのカタリナサーブレットを使用して、この問題を解決しました。
<servlet> <servlet-name>default</servlet-name> <servlet-class> org.apache.catalina.servlets.DefaultServlet </servlet-class> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/docs/*</url-pattern> </servlet-mapping>
このコードを使用すると、HTML ページを提供できます (/docs/* パスの下にある限り、セキュリティの背後であっても)。したがって、ここから次のことができます。
@RequestMapping(method = RequestMethod.GET) public String main() { return "redirect:/docs/index.html"; }
しかし、それは私が望むものではありません。これ以降、ブラウザの URL は /docs/ として表示されます
私がしたいことは、ユーザーが/に行くとindex.htmlを取得しますが、/invoke1に行くとスプリングコントローラーに到達することです。
これは、私がしばらく理解しようとしているものです。正しい解決策を教えていただければ幸いです。ありがとうございました。