在没有HttpServletRequest的情况下获取主机和contextroot

时间:2011-12-21 15:14:16

标签: java servlets spring-mvc contextpath

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

我不想硬编码链接的主机,因为dev,test和prod的主机不同。所以我需要在我的邮件类中以编程方式获取主机名和应用程序上下文。

我们在这个项目中使用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之外的其他接口吗?请帮助: - )

此致 丹尼尔

1 个答案:

答案 0 :(得分:1)

我在发帖前做过搜索,但显然不够努力。已经提出(并已回答)这个完全相同的问题。

Finding your application's URL with only a ServletContext