When cookie is disabled on client side, most of time we can refer to use response.encodeURL or encodeRedirectURL to add a param jsessionid to identify the client and context.
Both response.encodeURL and encodeRedirectURL revolve around the concept of URL rewriting, but basically it involves suffixing the URL with a HTTP_QUERY_STRING , which mostly is a session id used to keep track of a particular users context. URL re-writing is used get over the usage of cookies which are dependent on browser configuration, thus not reliable at all.
But the difference between the methods is in their usage and not their fuctionality. both perform the same task of re-writing a URL.
use encodeRedirectURL when u send a redirect header to the browser using response.sendRedirect(string URL)
for eg lets say on a partucular condition u want to redirect to different page
if (name == null){
response.sendRedirect(response(encodeRedirectURL("errorPage.jsp"))
}
on the other hand lets say u wanna provide a link to shopping cart page to a user -
printWriter.println("A HREF=" + response.encodeURL("shoppingCart.jasp") + ">")
thus essentially they do same thing of re-writing the URl for non-cookie compliant browser.
The example of response.encodeURL() as following:
test.jsp