【问题标题】:Understanding Jetty Resource and Context in WAR and other deployments了解 WAR 和其他部署中的 Jetty 资源和上下文
【发布时间】:2019-09-29 19:17:49
【问题描述】:

Jetty 有资源和上下文。我正在努力更好地理解它们。

资源是 URL、文件路径还是其他? Resource 是相对于 WAR、其运行的文件系统还是其他什么?您如何将资源指向 WAR 中的某些内容?

什么是资源库?它如何影响资源?

上下文只是表示 URL 路径开头的一种方式吗?如果不是,什么是上下文?

我已阅读 API 文档,但没有看到这些定义。

【问题讨论】:

    标签: servlets jetty war


    【解决方案1】:

    “资源”这个词被重载了。

    • 资源是向任何 URL 发出请求时在 HTTP 规范中使用的术语(请参阅"Target Resource"

    • Resource 是 URL (Uniform Resource Locator) 和 URI (Uniform Resource Identifier) 的首字母缩写词中的第二个字母。

    • 资源也是服务器机器本身可以访问的东西的定义:

      • 文件系统路径作为对该路径的字符串 (/path/to/my/...) 引用。
      • 文件系统路径作为对该路径的字符串 URL (file://...) 引用。
      • 对非文件系统资源的字符串 URL (http://...) 引用。
      • 类路径引用 (/content/in/classpath)
      • 一个 Jar 文件参考 (jar:file:///path/to/foo.jar!/path/inside/)
      • java.io.File 参考。
      • java.nio.file.Path 参考。
      • java.net.URL 引用(可以是任何受支持的 java url 协议/方案)。
      • java.net.URI 引用(可以是任何受支持的 java url 协议/方案)。
    • 资源可以是对具有内容(如文件)或其他资源目录的特定事物的引用。

    • “资源库”始终是目录样式参考。

    • 对“资源库”中的内容的请求始终与该资源库相关,并且具有将您保留在该资源库中的保护(或引发错误)。 (例如:/path/to/base/ 的 Resource Base 和 /css/main.css 的请求将返回 /path/to/base/css/main.css,但请求 /../../../secret.txt 将返回错误)

    现在,“上下文”这个词,这就是您在 Servlet 规范中看到的 javax.servlet.ServletContext 概念中的内容

    • 定义一组可通过通用上下文路径访问的资源(物理、静态、动态、生成等)。
    • 该上下文中的进程(例如:servlet 和过滤器)可以访问该上下文中的其他资源。
    • 上下文之外的进程无法访问该上下文中的内容。
    • 上下文本身包含该上下文中所有组件都可以访问的信息(例如:属性、初始化参数、安全约束、安全角色、mime 类型映射、语言环境编码、会话配置、侦听器、临时目录、工作目录等。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-05
      • 2012-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-25
      相关资源
      最近更新 更多