1

「webapp-1.0.war」という名前のwarファイル内にホームページhome.htmlがあります。ブラウザが「http:// domain / myapp」を要求したとき、home.htmlを提供したいのですが、ブラウザのアドレスバーに「http:// domain/myapp」を表示し続けたいのです。アドレスバーに「 http://domain/myapp/home.html 」を表示したくありません。

だから私はこれをweb.xmlに入れました:

<welcome-file-list>
  <welcome-file>home.html</welcome-file>
</welcome-file-list> 

そして、次のようにjboss-web.xmlを追加しました。

<jboss-web>
  <context-root>myapp</context-root>
</jboss-web>

これはほとんど機能します。ブラウザが「http:// domain / myapp」を要求すると、home.htmlが送信されますが、mimeタイプはtext/htmlではなくapplication/octet-streamであるため、Firefoxはファイルのダウンロードであると見なします。

4

3 に答える 3

2

これはデフォルトの動作ではありません。

MIMEタイプは通常、で定義されweb.xmlます。Tomcatとクローンの場合、appserver-defaultmimeタイプはで定義され/conf/web.xmlます。

ただし、これは、Webアプリケーションのカスタムmimeマッピングエントリ、または要求/応答チェーンのサーブレットまたはフィルタでオーバーライドでき/WEB-INF/web.xmlますHttpServletResponse#setContentType()/*リクエストURLに基​​づいてコンテンツタイプを誤ってスニッフィングして設定する、ある種の不十分なフィルタリスニングがあることを想像できます。Webアプリに同様のものが存在するかどうかを確認します。

于 2009-12-08T18:24:43.017 に答える
2

「octet-stream」は、Restletのデフォルトのmimeタイプです。「html」はデフォルトのマッピングで定義されています。独自のMetaDataServiceがあるようです。このような拡張マッピングを追加できます。

getMetadataService().addExtension("html", MediaType.TEXT_HTML, true);
于 2009-12-08T19:57:00.107 に答える
0

それは確かにRestletのデフォルトの動作であるように見えます。もう少し考えてみると、その振る舞いが好きだと思います。よく考えてみると、Webアプリ全体(ルートURLによって暗示されるもの)は、実際にはブラウザーが取得することに関心のあるリソースではないと思います。ブラウザは、Webアプリの一部である「ホーム」リソースのhtml表現に本当に関心があります。だから私はそれを残すと思います。しかし、私はあなたに賛成票を投じます、BalusCは私のために答えるために時間を割いてくれました。

于 2009-12-08T19:33:35.540 に答える