Here's the scenario.
My Java web application has following path
https://www.mywebsite.com:9443/MyWebApp
Let's say there is a JSP file
https://www.mywebsite.com:9443/MyWebApp/protected/index.jsp
and I need to retrieve
https://www.mywebsite.com:9443/MyWebApp
within this JSP file.
Of course, there is rather a lazy and silly way of just getting the URL and then re-tracing the path back.
But is there a programatic way of doing this? Specifically, I think I can get the domain + port, but how do I actually retrieve the application name "MyWebApp"?
Take a look at the documentation for HttpServletRequest
.
In order to build the URL in your example you will need to use:
getScheme()
getServerName()
getServerPort()
getContextPath()
Here is a method that will return your example:
public static String getURLWithContextPath(HttpServletRequest request) {
return request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath();
}