我有以下应用程序URI结构:
ip:port/applicationName/someAction
如何以编程方式获取URI的以下部分:
ip:port/applicationName/
我试过了
servletContext.getContext()
但它仅返回
applicationName
。附言
这有效
String applicationBasePath = request.getRequestURL().substring(0,request.getRequestURL().indexOf("/",request.getRequestURL().indexOf("/")+2));
还有这个:
request.getRequestURL().substring(0, request.getRequestURL().indexOf(request.getRequestURI()))
但是我不喜欢。
最佳答案
我相信您需要获取HttpServletRequest
,然后可以从getRequestURL()
中提取该信息。
servlet上下文的唯一问题是您的应用程序可以访问,例如通过http://127.0.0.1/
或http://192.168.1.1/
,如果不完成实际请求,您将不会知道。如果您可以定义任何“规范”服务器名称,则可以例如就像这里:Getting server name during servlet initialization
即。 String serverName = getServletContext().getInitParameter("serverName");
具有已定义的init参数。