ホームページ > Java > &#&チュートリアル > Spring MVC でグローバル フロント コントローラー サーブレットを使用するときに静的リソースにアクセスするにはどうすればよいですか?

Spring MVC でグローバル フロント コントローラー サーブレットを使用するときに静的リソースにアクセスするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-05 02:35:11
オリジナル
379 人が閲覧しました

How to Access Static Resources When Using a Global Front Controller Servlet in Spring MVC?

グローバル フロント コントローラー サーブレットを使用した静的リソースへのアクセス

Spring MVC ディスパッチャーをグローバル フロント コントローラー サーブレットとして / にマッピングする場合、通常、次のようなフォルダーに保存されている CSS、JS、画像などの静的リソースへのアクセスに問題が発生する可能性があります。 /res.これは、/ マッピングがすべてのリクエストをキャプチャしてサーブレットにルーティングし、これらの静的ファイルへのアクセスを防止するためです。

これに対処するには、コントローラー サーブレットに対してより具体的な URL パターンを定義できます。 /pages/ など。静的コンテンツは、/static などの別のフォルダーに配置できます。フィルターは、/ でリッスンし、他のリクエストをコントローラー サーブレットにディスパッチしながら、静的コンテンツのリクエストをデフォルトのサーブレットに透過的に渡すように構成できます。

簡略化されたコード サンプルは次のとおりです:

<filter>
    <filter-name>filter</filter-name>
    <filter-class>com.example.Filter</filter-class>
</filter>
<filter-mapping>
    <filter-name>filter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<servlet>
    <servlet-name>controller</servlet-name>
    <servlet-class>com.example.Controller</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>controller</servlet-name>
    <url-pattern>/pages/*</url-pattern>
</servlet-mapping>
ログイン後にコピー

そしてフィルターの doFilter() メソッド内:

HttpServletRequest req = (HttpServletRequest) request;
String path = req.getRequestURI().substring(req.getContextPath().length());

if (path.startsWith("/static")) {
    chain.doFilter(request, response); // Goes to default servlet.
} else {
    request.getRequestDispatcher("/pages" + path).forward(request, response);
}
ログイン後にコピー

これこの構成により、残りのリクエストを処理するコントローラー サーブレットの機能を中断することなく、CSS や JS などの静的リソースにアクセスできるようになります。さらに、フィルターを使用すると、静的ファイルへのアクセスがブラウザーの観点から完全に透過的になります。

以上がSpring MVC でグローバル フロント コントローラー サーブレットを使用するときに静的リソースにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート