在没有HttpServletRequest的情况下,在类中获取主机和上下文根

5

我目前正在创建一个用于处理邮件发送的类。对于其中一些邮件,我需要构建链接(帐户激活、重置密码、确认等)。

我不想在链接中硬编码主机名,因为主机名在开发、测试和生产环境中是不同的。因此,在我的邮件类中,我需要以编程方式获取主机名和应用程序上下文。

我们在这个项目中使用Spring MVC。

我将用一个示例来说明我的需求。

在我们的JSP中,我们有如下代码片段:

<script src="<%=request.getContextPath()%>/js/jquery-1.7.js" type="text/javascript">

在这种情况下,request.getContextPath()将解析为http://localhost:8080/applicationName 我希望我的邮件类也能得到类似的结果。
我尝试在我的类中实现ServletContextAware,认为我可以使用servletContext.getContextPath()得到类似的结果。但是这个语句只会解析为/applicationName。
因此我的问题是:如何在我的邮件类中获得完整的主机和上下文(http://localhost:8080/applicationName)?是否有比ServletContextAware更好的接口可用?请帮忙 :-)
谢谢 丹尼尔

请参见以下链接:http://stackoverflow.com/questions/8343634/get-server-name-from-postconstruct-method-in-a-spring-controller。该链接涉及Spring控制器中的@PostConstruct方法如何获取服务器名称的问题。 - axtavt
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接