Web programmers know that they shouldn’t go writing JSPs with the Context Path hard coded in them.
If you do the following:
<a href="/MyApp/path/to/controller/home.htm> Home </a>
You’ll notice that as soon as you decide to deploy your web application using a different name than “MyApp” then none of your links will work anymore.
To avoid this you need to get the context path from the HttpRequest object as follows:
<a href="<%=request.getContextPath() %>/path/to/controller/home.htm> Home </a>
or by using a JSTL tag:
<a href="<c:url value="/path/to/controller/home.htm"/>"> Home </a>
What happens when you are rendering HTML in your Java code and you don’t have access to a HttpRequest object for whatever reason?