miercuri, 17 iunie 2015

[OmniFaces utilities 2.0] Get the HTTP request URL with query string


[OmniFaces utilities] The getRequestURLWithQueryString() method returns the HTTP request URL with query string. This is the full request URL with query string as the enduser sees in browser address bar.

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. http://localhost:8080/MyApp/ MyServlet?tech=JSF&lib=OmniFaces
  String requestURL = Servlets.getRequestURLWithQueryString(request);
 }
 ...
}

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

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. http://localhost:8080/MyApp/faces/index.xhtml?tech=JSF&lib=OmniFaces
// Note: in order to preserve the query parameters over a JSF POST you may need, <o:form includeRequestParams="true"> 
String requestURL = Servlets.getRequestURLWithQueryString(request);

Niciun comentariu:

Trimiteți un comentariu