2017-06-05 25 views
0

私のサンプルWebアプリケーションはEclipseでビルドされていますが、index.htmlファイルをWEB-INFフォルダに配置し、次にロードするために配備記述子web.xmlファイルを更新してみましたWEB-INFのindex.htmlファイルへのアクセス方法

<welcome-file>WEB-INF/index.html</welcome-file> 

しかし、TomcatサーバーにWebアプリケーションをデプロイしようとすると、index.htmlファイルがロードされません。しかし、index.htmlファイルをアプリケーションのルートに直接移動すると、つまりWebContentフォルダの直下に移動すると、index.htmlファイルがブラウザに正常にロードされます。

私はWEB-INFの下で、デフォルトのindex.htmlファイルを配置する必要があるならば、私は、サーブレットを書いて、私のweb.xmlファイルに<load-on-startup>0</load-on-startup>
としてそれを維持する必要があると思います。 それ以外の場合、TomcatコンテナがWEB-INFのindex.htmlに直接アクセスすることはできません。

何か不足している場合は、気軽に追加してください。

答えて

0

不可能です。

サーブレット3.1仕様

WEB-INFノードの大半は アプリケーションのパブリックドキュメントツリーの一部ではありません。 WEB-INF/lib ディレクトリにあるJARファイルの METAINF/resourcesにパッケージされている静的リソースとJSPを除き、WEB-INFディレクトリに含まれるその他のファイルはコンテナによってクライアントに直接配信される ではありません。

ファイルindex.htmlsrc/main/webappに入れてください。

リファレンス

http://download.oracle.com/otn-pub/jcp/servlet-3_1-fr-eval-spec/servlet-3_1-final.pdf(ページ10から105)

https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

+0

なぜそれは不可能でしょうか?私たちがサーブレットを使ってレンダリングするとき、WEB-INFの中に置かれたjspに対しても同じことをしていませんか? APIは、提供できないサービスではない可能性があると述べています。私が何かを逃している場合は、私を修正してください。 – dirai

+0

JSPファイルの場合(あなたの返信)、間接的にアクセスしています。 –

+0

はい。私たちは間接的にそれにアクセスすることができますが、それは良い方法ではありません。少なくとも1つのファイル(デフォルト)が公開されている必要があります。 – dirai

関連する問題