我的应用程序是一个 Java REST 应用程序,我需要发送电子邮件。
电子邮件包含相关操作的URL...
如何获取真实的服务器地址???
我可以获得 Session 实例,但它只有 contextPath...
http://xxxxxx/<contextPath>
我需要完整的上下文......就像这样
<protocol>://<domain>/<contextPath>
如果您使用 Java EE 7/CDI 1.1+,您可以为应用程序注入(inject) ServletContext
并为当前请求注入(inject) HttpServletRequest
:
@Inject
ServletContext context;
@Inject
HttpServletRequest request;
您将在其中获得构建 URL 所需的内容。
如果您使用的是 Java EE 6/CDI 1.0,最简单的解决方案是添加 Apache Deltaspike servlet module添加到您的项目中,那么您将拥有与以下相同的功能:
@Inject
@Deltaspike
ServletContext context;
@Inject
@Deltaspike
HttpServletRequest request;
我是一名优秀的程序员,十分优秀!