marți, 16 iunie 2015

[OmniFaces utilities 2.0] Get the HTTP request hostname


[OmniFaces utilities] The getRequestHostname() method returns the HTTP request hostname. This is the entire domain, without any scheme and slashes. Noted should be that this value is extracted from the request URL, not from HttpServletRequest#getServerName() as its outcome can be influenced by proxies.

Method:
Usage:

·         inside a servlet filter or even a plain vanilla servlet (basically, when FacesContext is not available):

import org.omnifaces.util.Servlets;
...
@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
 protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  // e.g. localhost, 89.38.156.5
  String hostname = Servlets.getRequestHostname(request);
 }
 ...
}

·         in JSF, when FacesContext is available use, Faces#getRequestHostname()or more clumsy (not recommended):

import org.omnifaces.util.Servlets;
...
// or simply use, Faces#getRequest()
FacesContext context = FacesContext.getCurrentInstance();
ExternalContext externalContext = context.getExternalContext();
HttpServletRequest request = (HttpServletRequest) externalContext.getRequest();

// e.g. localhost, 89.38.156.5
String hostname = Servlets.getRequestHostname(request);

Niciun comentariu:

Trimiteți un comentariu