http://java.sun.com/javaee/javaserverfaces/1.1/docs/api/javax/faces/context/package-summary.html)
can be accessed by the global JavaScript objects made available to Xpages
developers. For example, add the following lines of code your JavaScript
to access the request object and information about the request using the
facesContext
global object :
var externalContext = facesContext.getExternalContext();
var request = externalContext.getRequest(); \\this is a HttpServletRequest
var serverName = request.getServerName();
var cookie = request.getHeader(“Cookie”);
Further examples:
Examples of how to use the facesContext global object can also be found
by opening the "xpCGIVariables" JavaScript library in the Domino
8.5 discussion8.ntf template.
In Domio Designer, select File -> Application -> Open
-> your_server_name -> discussion8.ntf. In the
navigator window, expand the following menu elements: Code ->
Script Libraries and open the library xpCGIVariables. For
further details of how to use the JavaScript global objects see the articles
on "Global Objects" and "JavaScript libraries in the Xpages
engine",.
Sample Code:
/*
This server side script
library implements a class named "CGIVariables" which allows
for easy access
to most CGI variables
in XPages via javascript.
For example, to dump
the remote users name, IP address and browser string to the server console,
use:
var cgi = new CGIVariables();
print ("Username:
" + cgi.REMOTE_USER);
print ("Address
: " + cgi.REMOTE_ADDR);
print ("Browser
: " + cgi.HTTP_USER_AGENT);
Written July 2008 by
Thomas Gumz, IBM.
*/
function
CGIVariables() {
setup our object by
getting refs to the request and servlet objects
try
{
this.request
= facesContext.getExternalContext().getRequest();
this.servlet
= facesContext.getExternalContext().getContext();
} catch(e)
{
print (e.message);
}
this.prototype.AUTH_TYPE
= this.request.getAuthType();
this.prototype.CONTENT_LENGTH
= this.request.getContentLength();
this.prototype.CONTENT_TYPE
= this.request.getContentType();
this.prototype.CONTEXT_PATH
= this.request.getContextPath();
this.prototype.GATEWATY_INTERFACE
= "CGI/1.1";
this.prototype.HTTPS
= this.request.isSecure()
? "ON"
: "OFF";
this.prototype.PATH_INFO
= this.request.getPathInfo();
this.prototype.PATH_TRANSLATED
= this.request.getPathTranslated();
this.prototype.QUERY_STRING
= this.request.getQueryString();
this.prototype.REMOTE_ADDR
= this.request.getRemoteAddr();
this.prototype.REMOTE_HOST
= this.request.getRemoteHost();
this.prototype.REMOTE_USER
= this.request.getRemoteUser();
this.prototype.REQUEST_METHOD
= this.request.getMethod();
this.prototype.REQUEST_SCHEME
= this.request.getScheme();
this.prototype.REQUEST_URI
= this.request.getRequestURI();
this.prototype.SCRIPT_NAME
= this.request.getServletPath();
this.prototype.SERVER_NAME
= this.request.getServerName();
this.prototype.SERVER_PORT
= this.request.getServerPort();
this.prototype.SERVER_PROTOCOL
= this.request.getProtocol();
this.prototype.SERVER_SOFTWARE
= this.servlet.getServerInfo();
these are not really
CGI variables, but useful, so lets just add them for convenience
this.prototype.HTTP_ACCEPT
= this.request.getHeader("Accept");
this.prototype.HTTP_ACCEPT_ENCODING
= this.request.getHeader("Accept-Encoding");
this.prototype.HTTP_ACCEPT_LANGUAGE
= this.request.getHeader("Accept-Language");
this.prototype.HTTP_CONNECTION
= this.request.getHeader("Connection");
this.prototype.HTTP_COOKIE
= this.request.getHeader("Cookie");
this.prototype.HTTP_HOST
= this.request.getHeader("Host");
this.prototype.HTTP_REFERER
= this.request.getHeader("Referer");
this.prototype.HTTP_USER_AGENT
= this.request.getHeader("User-Agent");
}