我在一个名为“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类型是application / octet-stream而不是text / html,这使得Firefox认为它是文件下载。
答案 0 :(得分:2)
这不是默认行为。
Mime类型通常在web.xml
中定义。对于Tomcat和克隆,appserver默认的mime类型在/conf/web.xml
中定义。
然而,这可以通过webapp的/WEB-INF/web.xml
中的自定义mime映射条目或请求 - 响应链中的servlet或过滤器中的HttpServletResponse#setContentType()
来覆盖。我可以想象在/*
上有一些不良的过滤器监听错误地嗅探并根据请求URL设置内容类型。查看您的webapp中是否存在类似内容。
答案 1 :(得分:2)
“octet-stream”是Restlet中的默认mime类型。 “html”在默认映射中定义。看起来你有自己的MetaDataService。您可以添加像这样的扩展名映射
getMetadataService().addExtension("html", MediaType.TEXT_HTML, true);
答案 2 :(得分:0)
它确实似乎是Restlet的默认行为。在考虑了一些之后,我想我喜欢这种行为。 RESTful思考,我认为整个Web应用程序(这是根URL所暗示的)并不是我的浏览器有兴趣检索的资源。浏览器真的对“home”资源的html表示感兴趣,它是Web应用程序的一部分。所以我想我会离开它。但我会继续向上投票,BalusC花时间为我回答。