gpt4 book ai didi

java - 如何在 Servlet 2.4 版本的 init() 方法中获取 ContextPath

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:32:44 29 4
gpt4 key购买 nike

我正在使用 2.4 版的 Servlet,我需要通过在服务器上调用的 init() 方法获取 ContextPath开始,所以我没有任何可以调用 getContextPath()Request 对象 并且因为我没有 getContextPath() 的 Servlet 版本ServletContext 中的方法。

有没有办法以某种方式获取此 ContextPath()

最佳答案

一个 Web 应用程序可以在多个不同的上下文路径中发布,因此上下文路径(单数)仅在特定请求的上下文中才有意义。 Servlet 2.5 向 ServletContext 添加了 getContextPath(),指定返回此 Web 应用程序的“主要”上下文路径,但在早期没有容器独立的方式来访问此信息规范版本。

可能有些技巧适用于某些容器,例如在 Tomcat 上,ServletContext.getResource() 方法返回具有自定义方案的 URL,格式为 jndi://hostname/上下文/...。因此你可以使用

ctx.getResource("/").getPath()

获取 Tomcat 上的上下文路径(或者可能是 getResource("/WEB-INF/web.xml") 并剪掉尾部,如 getResource()被指定返回 null 如果你要求它一个不存在的文件)。您将不得不尝试不同的容器,以找到适用于这些容器的类似技巧。

关于java - 如何在 Servlet 2.4 版本的 init() 方法中获取 ContextPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13879869/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com