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

Dan*_*iel 5 java servlets spring-mvc contextpath

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

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

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

我用一个例子说明我想要的东西.

在我们的JSP中,我们有这样的代码片段:

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

在此上下文中,request.getContextPath()将解析为 http:// localhost:8080/applicationName

这就是我想要的邮件课程.

我试图在我的班级中实现ServletContextAware,以为我能够使用servletContext.getContextPath()类似的结果.但是这个语句只解析为/ applicationName

所以我的问题是:如何在我的邮件类中获得完整的主机和上下文(http:// localhost:8080/applicationName)?我可以使用除ServletContextAware之外的其他接口吗?请帮忙 :-)

关心丹尼尔

Dan*_*iel 1

我在发布之前进行了搜索,但显然不够努力。这个完全相同的问题已经被问过(并回答过)。

仅使用 ServletContext 查找应用程序的 URL