在Spring服务中获取Java上下文URL而无需HttpServletRequest

3
在我的Spring WebService中,我想获取我的应用程序的URL,如"http://localhost:8080/mycontext"。但是我的服务中没有任何HttpServletRequest变量,所以我该如何获取它?

1
你可能需要将HttpServletRequest作为参数添加进去。https://dev59.com/anI_5IYBdhLWcg3wMf5_ - Alain-Michel Chomnoue N
1
HttpServletRequest 可以被 Spring 在你的控制器方法中注入,只需将其添加到参数中即可。 - sjahan
1个回答

8
您可以通过RequestContextHolder获取当前请求,例如:
ServletRequestAttributes sra = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
HttpServletRequest req = sra.getRequest();     
req.getContextPath();
req.getPathInfo();

您也可以通过Spring将它注入到您的服务中:

private @Autowired HttpServletRequest request;

谢谢!我使用了私有的@Autowired HttpServletRequest request来完成它。 - anais1477

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