There are some general guidelines for how your code should handle URLs in order to support URL rewriting.
- Avoid writing a URL straight to the output stream, as shown here:
out.println("<a href=\"/myshop/catalog.jsp\">catalog</a>");
-
Instead, use the HttpServletResponse.encodeURL() method, for example:
out.println("<a href=\""
+ response.encodeURL("myshop/catalog.jsp")
+ "\">catalog</a>");
-
Calling the encodeURL()
method determines if the URL needs to be rewritten, and if so, it
rewrites it by including the session ID in the URL. The session ID is
appended to the URL and begins with a semicolon.
- In addition to URLs that are returned as a response to WebLogic Server, also encode URLs that send redirects. For example:
if (session.isNew())
response.sendRedirect (response.encodeRedirectUrl(welcomeURL));
-
WebLogic
Server uses URL rewriting when a session is new, even if the browser
does accept cookies, because the server cannot tell whether a browser
accepts cookies in the first visit of a session.
- Your servlet can determine whether a given session ID was received from a cookie by checking the Boolean returned from the HttpServletRequest.isRequestedSessionIdFromCookie() method. Your application may respond appropriately, or simply rely on URL rewriting by WebLogic Server.