Für bestimmte Anwendungsfälle, zum Beispiel dem Versenden einer Aktivierungsmail an neu registrierte Benutzer, wird die Basis URL einer Webanwendung benötigt. Diese kann entweder manuell hinterlegt oder zur Laufzeit aus einem HttpServletRequest ausgelesen werden. Für den letzteren Fall kann die folgende Methode verwendet werden.

package de.patrickgotthard.util;

import javax.servlet.http.HttpServletRequest;

/**
 * Util class to get informations from a {@link HttpServletRequest}.
 */
public final class HttpServletRequestUtil {

    private HttpServletRequestUtil() {
    }

    /**
     * Extracts the base URL of the web application.
     *
     * @param request {@link HttpServletRequest} to extract the base URL from
     * @return Base URL of the web application
     */
    public static String getBaseUrl(final HttpServletRequest request) {
        final String requestURL = request.getRequestURL().toString();
        final String requestURI = request.getRequestURI();
        return requestURL.replace(requestURI, "");
    }

}