spring - 从 Spring Web 应用程序中检索 servlet 上下文路径

标签 spring servlets contextpath

我希望能够动态检索“servlet 上下文路径”(例如 http://localhost/myapphttp://www.mysite.com) 用于来自 Service spring bean 的 Spring Web 应用程序。

这样做的原因是我想在将要发送给网站用户的电子邮件中使用此值。

虽然从 Spring MVC Controller 执行此操作很容易,但从 Service bean 执行此操作并不那么明显。

谁能给点建议?

编辑:附加要求:

我想知道是否有一种方法可以在应用程序启动时检索上下文路径并让我的所有服务始终可以检索它?

最佳答案

如果您使用 ServletContainer >= 2.5,则可以使用以下代码获取 ContextPath:

import javax.servlet.ServletContext;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component

@Component
public class SpringBean {

    @Autowired
    private ServletContext servletContext;

    @PostConstruct
    public void showIt() {
        System.out.println(servletContext.getContextPath());
    }
}

关于spring - 从 Spring Web 应用程序中检索 servlet 上下文路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12236590/

相关文章:

java - 从 JSP 转发到另一个 JSP 而不在它们之间使用 servlet?

java - 静态资源 URI 中的上下文路径,我真的需要指定它吗?

spring - 403禁止Spring Boot Web套接字调用

java - 如何在Spring应用程序中实现安全性?

spring - 用于不同 oauth 客户端的多个 Springfox SecurityConfigurations

java - 我如何绘制从我的 android 应用程序发送到 tomcat 服务器的 lat ,lng 并在那里绘制谷歌地图?

java - 为什么我的 Spring @Autowired 字段为空?

java web 应用程序 - 将内容添加到 servlet 上下文监听器的 web.xml 后无法查看 jsp 文件

tomcat - 如何在 jboss 5.1 中定义 war 之外的根上下文?

regex - 如何使用 ProxyMatch 或 ProxyPassMatch 与 Regex 映射多个上下文路径