【问题标题】:How static resource is served by glassfish server without servlet-mappingglassfish 服务器如何在没有 servlet 映射的情况下提供静态资源
【发布时间】:2014-01-03 18:33:06
【问题描述】:

我在 glassfish 服务器 @ 物理位置 {WebAppRoot}/resources/WebFiles/zippedFiles/{FileName}.zip 上部署了带有一些静态资源 (.zip) 的 war 文件,因此从浏览器相对路径或 URI 下载/访问文件将是 {domain.com}/resources/WebFiles/zippedFiles/{FileName}.zip。在我尝试启用恢复之前的某天谷歌搜索后支持下载此类文件我知道我必须告诉 glassfish .zip 文件是静态内容,所以在添加后

<servlet-mapping>
   <servlet-name>DefaultServlet</servlet-name>
   <url-pattern>.zip</url-pattern>
</servlet-mapping>

恢复支持已启用。

所以我的问题是,在添加&lt;servlet-mapping&gt; 之前,.zip 文件是如何提供的?该文件是否由 DispatcherServlet(动态内容)处理?服务器如何知道 URI({domain.com}/resources/WebFiles/zippedFiles/{FileName}.zip) 是一个文件,而不是 DispatcherServlet 负责的控制器或 JSP(视图)。

最后,添加这样的&lt;servlet-mapping&gt; 有什么好处?

【问题讨论】:

    标签: java spring-mvc glassfish glassfish-3


    【解决方案1】:

    有一个“默认 servlet”可以处理所有未映射的资源。

    【讨论】:

    • 那么在将 .zip 引用到 &lt;servlet-name&gt;DefaultServlet&lt;/servlet-name&gt; 之前,Webserver 如何处理此类 URI 请求。
    • 因为,正如我已经说过的,它处理所有未映射的资源。这意味着您不必为其添加映射。
    • 好的,所以我的理解是要获得简历支持,我必须添加映射,否则服务器将处理..?
    • 如果默认 servlet 可以处理恢复,我不明白为什么需要添加映射。
    • 不,它没有,这意味着除非明确映射,否则默认 servlet 不会处理 Accept-Range。你的推论无效。
    猜你喜欢
    • 2018-01-02
    • 2023-04-09
    • 2011-06-29
    • 2019-12-28
    • 2020-07-21
    • 2016-04-24
    • 2017-11-12
    • 2014-11-17
    • 1970-01-01
    相关资源
    最近更新 更多