miercuri, 17 iunie 2015

[OmniFaces utilities 2.0] Get the HTTP request URI relative to the context root of a web application (the servlet path plus the path info (if any))


[OmniFaces utilities] The getRequestRelativeURIWithoutPathParameters() method returns the HTTP request URI relative to the context root of a web application. This is the servlet path plus the path info (if any). Note that this doesn't includes path parameters.

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. /MyServlet
  String relativeURI = Servlets.getRequestRelativeURIWithoutPathParameters(request);
 }
 ...
}

·         in JSF, when FacesContext is available you can use:

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

// e.g. /faces/index.xhtml
String relativeURI = Servlets.getRequestRelativeURIWithoutPathParameters(request);

Note For those who are unfamiliar with HTTP URL path parameters, please check here.

Niciun comentariu:

Trimiteți un comentariu