public class ResourceHttpRequestHandler extends WebContentGenerator implements HttpRequestHandler, EmbeddedValueResolverAware, InitializingBean, CorsConfigurationSource
HttpRequestHandler "locations" プロパティは、静的リソースがこのハンドラーによって提供されることを許可されている Spring Resource ロケーションのリストを取ります。リソースは、クラスパスの場所から提供できます。"classpath:/META-INF/public-web-resources/"。jar ファイルで .js、.css などのリソースを便利にパッケージ化して提供できます。
このリクエストハンドラーは、resourcesResolver および resourceTransformer チェーンで構成して、提供されるリソースの任意の解決と変換をサポートすることもできます。デフォルトでは、PathResourceResolver は設定された「場所」に基づいてリソースを単に検索します。アプリケーションは、URL にあるバージョンのリソースの URL を解決および準備できる VersionResourceResolver などの追加のリゾルバーおよびトランスフォーマーを構成できます。
また、このハンドラーは Last-Modified ヘッダー(存在する場合)を適切に評価するため、304 ステータスコードが適切に返され、クライアントによってすでにキャッシュされているリソースの不要なオーバーヘッドが回避されます。
HEADER_CACHE_CONTROL, METHOD_GET, METHOD_HEAD, METHOD_POST| コンストラクターと説明 |
|---|
ResourceHttpRequestHandler() |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | afterPropertiesSet() |
ContentNegotiationManager | getContentNegotiationManager() 設定済みのコンテンツネゴシエーションマネージャーを返します。 |
CorsConfiguration | getCorsConfiguration(HttpServletRequestEE request) 指定された CORS 設定を返します。 |
java.util.List<Resource> | getLocations()Resource ロケーションの構成済み List を返します。 |
protected MediaType | getMediaType(HttpServletRequestEE request, Resource resource) 指定されたリクエストのメディア型とそれに一致するリソースを決定します。 |
protected Resource | getResource(HttpServletRequestEE request) |
ResourceHttpMessageConverter | getResourceHttpMessageConverter() 構成済みのリソースコンバーターを返します。 |
ResourceRegionHttpMessageConverter | getResourceRegionHttpMessageConverter() 構成済みのリソース領域コンバーターを返します。 |
java.util.List<ResourceResolver> | getResourceResolvers() 設定されたリソースリゾルバーのリストを返します。 |
java.util.List<ResourceTransformer> | getResourceTransformers() 設定済みのリソーストランスフォーマのリストを返します。 |
UrlPathHelper | getUrlPathHelper() 構成された UrlPathHelper。 |
void | handleRequest(HttpServletRequestEE request, HttpServletResponseEE response) リソースリクエストを処理します。 |
protected void | initAllowedLocations() 構成されたリソースリゾルバーの中から PathResourceResolver を探し、そのクラスで構成された locations と一致するように allowedLocations プロパティ(空の場合)を設定します。 |
protected PathExtensionContentNegotiationStrategy | initContentNegotiationStrategy()ContentNegotiationManager セットアップと ServletContext の可用性に応じて、コンテンツネゴシエーション戦略を初期化します。 |
protected boolean | isInvalidPath(java.lang.String path) 無効なリソースパスを識別します。 |
protected java.lang.String | processPath(java.lang.String path) 指定されたリソースパスを処理します。 |
void | setContentNegotiationManager(ContentNegotiationManager contentNegotiationManager)ContentNegotiationManager を設定して、提供されているリソースのメディア型を決定します。 |
void | setCorsConfiguration(CorsConfiguration corsConfiguration) このハンドラーによって処理されるリソースの CORS 構成を指定します。 |
void | setEmbeddedValueResolver(StringValueResolver resolver)StringValueResolver を設定して、埋め込まれた定義値の解決に使用します。 |
protected void | setHeaders(HttpServletResponseEE response, Resource resource, MediaType mediaType) 指定されたサーブレットレスポンスにヘッダーを設定します。 |
void | setLocations(java.util.List<Resource> locations) 静的リソースを提供するためのソースとして使用する Resource ロケーションの List を設定します。 |
void | setLocationValues(java.util.List<java.lang.String> locationValues)UrlResource をサポートする、文字列ベースのロケーション値のリストを受け入れる setLocations(List) の代替(例: |
void | setResourceHttpMessageConverter(ResourceHttpMessageConverter messageConverter) 使用する ResourceHttpMessageConverter を構成します。 |
void | setResourceRegionHttpMessageConverter(ResourceRegionHttpMessageConverter messageConverter) 使用する ResourceRegionHttpMessageConverter を構成します。 |
void | setResourceResolvers(java.util.List<ResourceResolver> resourceResolvers) 使用する ResourceResolvers のリストを構成します。 |
void | setResourceTransformers(java.util.List<ResourceTransformer> resourceTransformers) 使用する ResourceTransformers のリストを構成します。 |
void | setUrlPathHelper(UrlPathHelper urlPathHelper) リクエストを静的リソースにマップするために使用される UrlPathHelper への参照を提供します。 |
java.lang.String | toString() |
applyCacheControl, applyCacheSeconds, applyCacheSeconds, cacheForSeconds, cacheForSeconds, checkAndPrepare, checkAndPrepare, checkRequest, getAllowHeader, getCacheControl, getCacheSeconds, getSupportedMethods, getVaryByRequestHeaders, isAlwaysMustRevalidate, isRequireSession, isUseCacheControlHeader, isUseCacheControlNoStore, isUseExpiresHeader, prepareResponse, preventCaching, setAlwaysMustRevalidate, setCacheControl, setCacheSeconds, setRequireSession, setSupportedMethods, setUseCacheControlHeader, setUseCacheControlNoStore, setUseExpiresHeader, setVaryByRequestHeadersgetServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContextgetApplicationContext, getMessageSourceAccessor, initApplicationContext, obtainApplicationContext, requiredContextClass, setApplicationContextpublic void setLocationValues(java.util.List<java.lang.String> locationValues)
setLocations(List) の代替。相対パスを追加するときに使用する文字セットを示す特別なプレフィックスを持つ UrlResource(たとえば、ファイルまたは HTTP URL)をサポートします。たとえば、"[charset=Windows-31J]http://example.org/path"。public void setLocations(java.util.List<Resource> locations)
Resource ロケーションの List を設定します。public java.util.List<Resource> getLocations()
Resource ロケーションの構成済み List を返します。 ロードされたリソースベースの場所の代わりに locationValues が提供される場合、このメソッドは afterPropertiesSet() による初期化の後まで空を返すことに注意してください。
public void setResourceResolvers(@Nullable java.util.List<ResourceResolver> resourceResolvers)
ResourceResolvers のリストを構成します。 デフォルトでは、PathResourceResolver が構成されています。このプロパティを使用する場合、PathResourceResolver を最後のリゾルバーとして追加することをお勧めします。
public java.util.List<ResourceResolver> getResourceResolvers()
public void setResourceTransformers(@Nullable java.util.List<ResourceTransformer> resourceTransformers)
ResourceTransformers のリストを構成します。デフォルトでは、使用するトランスフォーマは構成されていません。
public java.util.List<ResourceTransformer> getResourceTransformers()
public void setResourceHttpMessageConverter(@Nullable ResourceHttpMessageConverter messageConverter)
ResourceHttpMessageConverter を構成します。 デフォルトでは、ResourceHttpMessageConverter が構成されます。
@Nullable public ResourceHttpMessageConverter getResourceHttpMessageConverter()
public void setResourceRegionHttpMessageConverter(@Nullable ResourceRegionHttpMessageConverter messageConverter)
ResourceRegionHttpMessageConverter を構成します。 デフォルトでは、ResourceRegionHttpMessageConverter が構成されます。
@Nullable public ResourceRegionHttpMessageConverter getResourceRegionHttpMessageConverter()
public void setContentNegotiationManager(@Nullable ContentNegotiationManager contentNegotiationManager)
ContentNegotiationManager を設定して、提供されているリソースのメディア型を決定します。マネージャーにパス拡張子戦略が含まれている場合、登録されているファイル拡張子がチェックされます。@Nullable public ContentNegotiationManager getContentNegotiationManager()
public void setCorsConfiguration(CorsConfiguration corsConfiguration)
デフォルトでは、これはクロスオリジンリクエストを許可するように設定されていません。
@Nullable public CorsConfiguration getCorsConfiguration(HttpServletRequestEE request)
CorsConfigurationSource 内の getCorsConfiguration CorsConfiguration、または存在しない場合は null public void setUrlPathHelper(@Nullable UrlPathHelper urlPathHelper)
UrlPathHelper への参照を提供します。これは、デコードされているかどうかなど、ルックアップパスに関する情報を導き出すのに役立ちます。@Nullable public UrlPathHelper getUrlPathHelper()
UrlPathHelper。public void setEmbeddedValueResolver(StringValueResolver resolver)
EmbeddedValueResolverAwareEmbeddedValueResolverAware 内の setEmbeddedValueResolver public void afterPropertiesSet()
throws java.lang.ExceptionInitializingBeanBeanFactoryAware、ApplicationContextAware などを満たした後、包含 BeanFactory によって呼び出されます。このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。
InitializingBean 内の afterPropertiesSet java.lang.Exception - 構成の誤り(必須プロパティの設定の失敗など)の場合、またはその他の理由で初期化が失敗した場合 protected void initAllowedLocations()
PathResourceResolver を探し、そのクラスで構成された locations と一致するように allowedLocations プロパティ(空の場合)を設定します。protected PathExtensionContentNegotiationStrategy initContentNegotiationStrategy()
ContentNegotiationManager セットアップと ServletContext の可用性に応じて、コンテンツネゴシエーション戦略を初期化します。public void handleRequest(HttpServletRequestEE request, HttpServletResponseEE response) throws ServletExceptionEE, java.io.IOException
設定された場所のリストでリクエストされたリソースの存在を確認します。リソースが存在しない場合、404 レスポンスがクライアントに返されます。リソースが存在する場合、Last-Modified ヘッダーの存在についてリクエストがチェックされ、その値は指定されたリソースの最終変更タイムスタンプと比較され、Last-Modified 値が大きい場合は 304 ステータスコードが返されます。リソースが Last-Modified 値よりも新しい場合、またはヘッダーが存在しない場合、リソースのコンテンツリソースは、キャッシュヘッダーが 1 年後に期限切れになるように設定されたレスポンスに書き込まれます。
HttpRequestHandler 内の handleRequest request - 現在の HTTP リクエスト response - 現在の HTTP レスポンス ServletExceptionEE - 一般的なエラーの場合 java.io.IOException - I/O エラーの場合 @Nullable protected Resource getResource(HttpServletRequestEE request) throws java.io.IOException
java.io.IOExceptionprotected java.lang.String processPath(java.lang.String path)
デフォルトの実装は次のものに置き換わります。
" / // foo/bar" は "/foo/bar" になります。protected boolean isInvalidPath(java.lang.String path)
StringUtils.cleanPath(java.lang.String) の呼び出し後の "../" を含むパス。valid URL を表すパス、または先頭のスラッシュが削除された後のパスを表すパス。注意 : この方法では、先頭の重複する "/" または制御文字(空白など)が削除され、パスが単一の "/" で予測どおりに開始するか、パスが 1 つもないことが想定されています。
path - 検証するパス true、そうでない場合は false @Nullable protected MediaType getMediaType(HttpServletRequestEE request, Resource resource)
ServletPathExtensionContentNegotiationStrategy.getMediaTypeForResource(org.springframework.core.io.Resource) を介して Resource のファイル拡張子に基づいて MediaType を決定しようとします。request - 現在のリクエスト resource - チェックするリソース null protected void setHeaders(HttpServletResponseEE response, Resource resource, @Nullable MediaType mediaType) throws java.io.IOException
response - 現在のサーブレットレスポンス resource - 特定されたリソース (非 null)mediaType - リソースのメディア型 (非 null)java.io.IOException - ヘッダーの設定中にエラーが発生した場合 public java.lang.String toString()
java.lang.Object の toString