我目前正在创建一个用于处理邮件发送的类。对于其中一些邮件,我需要构建链接(帐户激活、重置密码、确认等)。
我不想在链接中硬编码主机名,因为主机名在开发、测试和生产环境中是不同的。因此,在我的邮件类中,我需要以编程方式获取主机名和应用程序上下文。
我们在这个项目中使用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更好的接口可用?请帮忙 :-)
谢谢 丹尼尔