Search code examples
jspabsolute-pathcontextpath

How to define src attribute from web application context in JSP


I wanted to use absolute path in src attribute, while including Javascript and CSS files in JSP.

Using relative URLs would not serve my purpose, similar to the one below :

<script type="text/javascript" src="../js/jquery-1.6.4.min.js"></script>

If I use absolute URL like,

<script type="text/javascript" src="/appName/js/jquery-1.6.4.min.js"></script>

Then I am hard-coding web application name which is not suitable again...

The best option I found is :

<base href="${pageContext.request.contextPath}"  />

But, it only works on href attributes like <a href="home.jsp" />


Solution

  • You got your solution:

    <script src="${pageContext.request.contextPath}/js/jquery.js"></script>
    <a href="${pageContext.request.contextPath}/home.jsp">Home</a>
    

    or, using the JSTL:

    <script src="<c:url value="/js/jquery.js"/>"></script>
    <a href="<c:url value="/home.jsp"/>">Home</a>
    

    The JSTL tag has the added advantage that it also adds the session ID to the URL if cookies are disabled, in order to track session using URL-rewriting.