|
Copyright © 2006 BEA Systems, Inc. All Rights Reserved | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.bea.portlet.GenericURL
public class GenericURL
The GenericURL
helps portal applications create
URLs to resources within the portal.
To obtain an instance of GenericURL
an application
must supply valid HttpServletRequest
and
HttpServletResponse
objects. This class derives
certain default attributes from the request/response.
A GenericURL
could be populated with the following
attributes:
Attribute | Purpose | Nodes |
Scheme | Scheme. Valid values are "http" and "https". | If not specified, uses the scheme that was used to make the request. |
Domain | Server domain. | If not specified, uses the domain that was used to make the request. If requests are made via a proxy, specify the domain of the proxy server. |
Port | Server port. | If not specified, uses the port from the request. If requests are made via a proxy, specify the port of the proxy server for the scheme used. |
Secure port | Secure server port. | If not specified, uses the default secure server port. If requests are made via a proxy, specify the port of the proxy server for the scheme used. |
Path prefix | Path prefix. | No default. |
path | path is the relative path to the resource (typically used for static/dynamic resources such as files, images, etc.). If the webapp name is needed in the path use contextualPath. | |
contextualPath | contextualPath is the relative path to the resource, The contextual path includes the webAppName (typically used for static/dynamic resources such as files, images, etc.). | No default. |
Encode session | Encodes the URL to include session ID. | Defaults to true
|
Parameter | Query parameters. | These parameters will be appended in the query string of the URL. This implementation preserves the order of parameters. If a parameter has multiple values, all values will be added at the first occurrence. |
In order to specify web-app wide defaults for the above attributes, named URL templates may be specified. A URL template is a parameterized fully-qualified URL string. Each URL template has a name. URL templates should be specified in "url-template-config.xml" file in WEB-INF directory of the webapp.
An example of a URL template (with name "mytemplate") is "http://my.domain.com/{url:prefix}/{url:path}?{url:queryString}&myParam1=myValue1
In this templates, parameters are enclosed in {}s, and can be replaced by attributes set.
The parameters "url:path" and "url:queryString" are reserved and should be present in every template.
A URL with the above template as the basis could be created as follows: GenericURL url = GenericURL.createGenericURL(request, response); url.setTemplate("mytemplate"); url.setPathPrefix("myproxypath");
In this example, since scheme, domain and port are not parameterized, it is illegal to set these attributes on the URL.
This mechanism recognizes the following parameters in URL templates:
url:scheme | Scheme | Usage |
url:domain | Domain | May be set |
url:port | Port | May be set |
url:securePort | Secure port | May be set |
url:prefix | Purpose | May be set |
url:path | Extra path information | Reserved, must be present in a template. |
url:contextualPath | Relative path to the resource | No default. |
url:queryString | Reserved query parameters | Reserved, must be present in a template. |
url:currentPage | Current page parameter | May be set |
If one or more parameters of a template are not set at runtime, the implementation will use defaults if appropriate.
Field Summary | |
---|---|
static String |
COMMUNITY_ADMIN_FLAG_PARAM
Name of the param used to provide a hint that the user wants to retrieve the admin view of a community resource - as opposed to their customized view. |
static String |
COMMUNITY_DESKTOP
Communities standalone portlet flag query parameter. |
static String |
CONTROL_STATE_PARAM
Control state parameter (reserved). |
static String |
CURRENT_PAGE
|
protected String |
domain
Server domain. |
static String |
DOMAIN
Template parameter: domain. |
static String |
EVENT_NAME_PARAM
Custom event name query parameter (reserved). |
protected HttpServletRequest |
httpRequest
HTTP request. |
protected HttpServletResponse |
httpResponse
HTTP response<./p> |
protected String |
httpsDomain
Server https domain. |
static String |
LOADSTATE_PARAM
Load state request query parameter (reserved). |
static String |
MODE_PARAM
Window mode query parameter (reserved). |
static String |
PAGE_LABEL_PARAM
Page label query parameter (reserved). |
protected LinkedHashMap |
params
Query parameters |
static String |
PATH
Template parameter: path. |
static String |
PORT
Template parameter: port. |
static String |
PORTLET_SUB_INSTANCE_ID
subInstanceId param: denotes a subInstanceId that is to be used for a Portlet |
static String |
POSTBACK_PARAM
Postback request query parameter (reserved). |
static String |
PREFIX
Template parameter: prefix. |
static String |
QUERY_STRING
Template parameter: queryString. |
static String |
SCHEME
Template parameter: scheme. |
static String |
SECURE_PORT
Template parameter: securePort. |
static String |
STATE_PARAM
Window state query parameter (reserved). |
static String |
TREE_OPTIMIZATION_PARAM
Tree Optimization request query parameter (reserved). |
static String |
URL_COMPRESSION
|
static String |
WINDOW_LABEL_PARAM
Window label query parameter (reserved). |
Constructor Summary | |
---|---|
protected |
GenericURL(HttpServletRequest request,
HttpServletResponse response)
Constructs a GenericURL . |
Method Summary | |
---|---|
void |
addParameter(String name,
String value)
Add a parameter. |
void |
addParameter(String name,
String value,
boolean encode)
Add a parameter. |
void |
addParameter(String name,
String value,
boolean encodeName,
boolean encodeValue)
Add a parameter. |
protected static StringBuffer |
appendEnsureSeparator(StringBuffer buf,
String token)
Deprecated As of 9.2 SP2, replaced by appendEnsureSeparator |
protected static StringBuilder |
appendEnsureSeparator(StringBuilder buf,
String token)
|
Object |
clone()
Returns a deep copy. |
static GenericURL |
createGenericURL(HttpServletRequest request,
HttpServletResponse response)
Constructs a GenericURL . |
protected StringBuffer |
createQueryString()
Deprecated As of 9.2 SP2, replaced by createQueryStringBuilder |
protected StringBuilder |
createQueryStringBuilder()
Creates a query string with the parameters set so far. |
String |
getContextualPath()
Returns the contextualPath. |
String |
getDomain()
Returns the domain. |
boolean |
getEncodeSession()
Returns true if URL rewriting is enabled. |
String |
getParameter(String name)
Returns the value of the parameter. |
List |
getParameters(String name)
Returns the values of the given parameter. |
String |
getPathPrefix()
Returns the path prefix. |
int |
getPort()
Returns the port. |
protected String |
getResolvedTemplate()
Returns the template used for generating the URL string. |
String |
getScheme()
Returns the protocol scheme. |
int |
getSecurePort()
Returns the port. |
String |
getTemplate()
Returns the current template. |
String |
getUrlType()
Returns the type of this URL. |
void |
removeParameter(String name)
Removes the given parameter. |
void |
setContextualPath(String contextualPath)
Sets contextual path. |
void |
setDomain(String domain)
Sets the domain. |
void |
setEncodeSession(boolean encodeSession)
Enables URL rewriting for encoding a session ID in the URL. |
void |
setForcedAmpForm(boolean useAmpEntity)
Forces the form of query separators used for this URL. |
void |
setPath(String path)
Sets path. |
void |
setPathPrefix(String pathPrefix)
Sets a path prefix. |
void |
setPort(int port)
Sets a port. |
void |
setScheme(String scheme)
Sets the protocol scheme. |
void |
setSecurePort(int securePort)
Sets a port. |
void |
setTemplate(String templateName)
Sets a URL template for this URL. |
String |
toString()
Returns a string form (fully-qualified) of this URL removing any unset template parameters. |
String |
toString(boolean removeUnsetParams)
Returns a string form (fully-qualified) of this URL. |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final String LOADSTATE_PARAM
Load state request query parameter (reserved).
public static final String POSTBACK_PARAM
Postback request query parameter (reserved).
public static final String COMMUNITY_DESKTOP
Communities standalone portlet flag query parameter.
public static final String TREE_OPTIMIZATION_PARAM
Tree Optimization request query parameter (reserved).
public static final String WINDOW_LABEL_PARAM
Window label query parameter (reserved).
public static final String STATE_PARAM
Window state query parameter (reserved).
public static final String MODE_PARAM
Window mode query parameter (reserved).
public static final String PAGE_LABEL_PARAM
Page label query parameter (reserved).
public static final String EVENT_NAME_PARAM
Custom event name query parameter (reserved).
public static final String CONTROL_STATE_PARAM
Control state parameter (reserved).
public static final String PORTLET_SUB_INSTANCE_ID
subInstanceId param: denotes a subInstanceId that is to be used for a Portlet
public static final String COMMUNITY_ADMIN_FLAG_PARAM
Name of the param used to provide a hint that the user wants to retrieve the admin view of a community resource - as opposed to their customized view.
public static final String SCHEME
Template parameter: scheme.
public static final String DOMAIN
Template parameter: domain.
public static final String PORT
Template parameter: port.
public static final String SECURE_PORT
Template parameter: securePort.
public static final String PREFIX
Template parameter: prefix.
public static final String PATH
Template parameter: path.
public static final String QUERY_STRING
Template parameter: queryString.
public static final String CURRENT_PAGE
public static final String URL_COMPRESSION
protected HttpServletRequest httpRequest
HTTP request.
protected HttpServletResponse httpResponse
HTTP response<./p>
protected String domain
Server domain.
protected String httpsDomain
Server https domain.
protected LinkedHashMap params
Query parameters
Constructor Detail |
---|
protected GenericURL(HttpServletRequest request, HttpServletResponse response)
Constructs a GenericURL
.
request
- HTTP requestresponse
- HTTP responseMethod Detail |
---|
public static GenericURL createGenericURL(HttpServletRequest request, HttpServletResponse response)
Constructs a GenericURL
.
request
- HTTP requestresponse
- HTTP responsepublic void setTemplate(String templateName)
Sets a URL template for this URL.
templateName
- name of the url template
IllegalArgumentException
- thrown if the named template does not exist
or if the template is not validpublic String getTemplate()
Returns the current template.
protected String getResolvedTemplate()
Returns the template used for generating the URL string.
This method returns the same value as does the getTemplate()
method if the set template exists. If not, this method returns the default template
named "default".
public void setScheme(String scheme)
Sets the protocol scheme. Should be one of "HTTP" or "HTTPS". If a protocol is not specified, the protocol that was used to make the current request will be used.
scheme
- protocol schemepublic String getScheme()
Returns the protocol scheme. If no protocol was previously set, returns the protocol that was used to make the current request.
public void setPort(int port)
Sets a port. If a port is not specified, the port from the request will be used.
port
- portpublic int getPort()
Returns the port. If no port was previously set, returns the port from the request.
public void setSecurePort(int securePort)
Sets a port. If a port is not specified, the default server secure port will be used.
securePort
- secure portpublic int getSecurePort()
Returns the port. If no port was previously set, returns the default secure server port.
public void setDomain(String domain)
Sets the domain. If a domain is not specified, the domain that was used to make the current request will be used.
domain
- domainpublic String getDomain()
Returns the domain. If no domain was previously set, returns the domain that was used to make the current request.
public void setPath(String path)
Sets path.
path
- pathpublic String getContextualPath()
Returns the contextualPath.
public void setContextualPath(String contextualPath)
Sets contextual path.
contextualPath
- public void setPathPrefix(String pathPrefix)
Sets a path prefix.
pathPrefix
- path prefixpublic String getPathPrefix()
Returns the path prefix.
public void setEncodeSession(boolean encodeSession)
Enables URL rewriting for encoding a session ID in the
URL. If not set to true
, does not encode the URL
with the session ID. Default is true
.
encodeSession
- booleanpublic boolean getEncodeSession()
Returns true
if URL rewriting is enabled.
public void addParameter(String name, String value)
Add a parameter. Multiple values for the same parameter can be set by calling this method multiple times with the same name.
This method URL encodes the parameter name and value value.
name
- namevalue
- valuepublic void addParameter(String name, String value, boolean encode)
Add a parameter. Multiple values for the same parameter can be set by calling this method multiple times with the same name.
If the boolean argument is true, this method URL encodes the parameter name and value.
name
- namevalue
- valueencode
- public void addParameter(String name, String value, boolean encodeName, boolean encodeValue)
Add a parameter. Multiple values for the same parameter can be set by calling this method multiple times with the same name.
If the encodeName boolean argument is true, this method URL encodes the parameter name. If the encodeValue boolean argument is true, this method URL encodes the parameter value.
name
- namevalue
- valueencodeName
- encodeValue
- public void removeParameter(String name)
Removes the given parameter.
name
- namepublic String getParameter(String name)
Returns the value of the parameter. If the parameter has several values, returns the first value.
name
- name of the parameter
public List getParameters(String name)
Returns the values of the given parameter.
name
- name of the parameter
public Object clone()
Returns a deep copy.
clone
in class Object
protected static StringBuffer appendEnsureSeparator(StringBuffer buf, String token)
appendEnsureSeparator
protected static StringBuilder appendEnsureSeparator(StringBuilder buf, String token)
public String getUrlType()
Returns the type of this URL.
public String toString()
Returns a string form (fully-qualified) of this URL removing any unset template parameters.
toString
in class Object
public String toString(boolean removeUnsetParams)
Returns a string form (fully-qualified) of this URL. If the boolean argument
is true
, removes unset template parameters.
removeUnsetParams
-
protected StringBuffer createQueryString()
createQueryStringBuilder
Creates a query string with the parameters set so far.
protected StringBuilder createQueryStringBuilder()
Creates a query string with the parameters set so far.
public void setForcedAmpForm(boolean useAmpEntity)
Forces the form of query separators used for this URL. This overrides the natural mechanisms for determining ampersand entity or character usage based on document type and/or configuration.
Note: This method has no effect if URL compression is enabled.
useAmpEntity
- true if the url should be forced to use ampersand enties,
false if the url should be forced to use ampersand charactersuseAmpEntity(HttpServletRequest)
|
Copyright © 2006 BEA Systems, Inc. All Rights Reserved | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |