marți, 16 iunie 2015

[OmniFaces utilities 2.0] Get the HTTP request URI relative to the context root of a web application


[OmniFaces utilities] The getRequestRelativeURI() method returns the HTTP request URI relative to the context root of a web application. This is the request URI minus the context path. Note that this includes path parameters.

Method:

OmniFaces 2.4 (uses Servlets.getRequestURI())OmniFaces 2.0

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.getRequestRelativeURI(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.getRequestRelativeURI(request);

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

Niciun comentariu:

Trimiteți un comentariu