📄 portletrequestimpl.java
字号:
// this.parameters = null;
// }
if (LOG.isDebugEnabled())
{
LOG.debug("Render request's included mode: " + included);
}
}
public boolean isIncluded()
{
return included;
}
/**
* The base method that returns the parameter map in this portlet request.
* All parameter-related methods call this base method. Subclasses may just
* overwrite this protected method to change behavior of all parameter-
* related methods.
* @return the base parameter map from which parameters are retrieved.
*/
protected Map<String, String[]> baseGetParameterMap()
{
if (isIncluded())
{
setBodyAccessed();
}
Map<String, String[]> parameters = urlProvider.getRenderParameters();
if (parameters == null)
{
if (getRequestMethod().equals(Constants.METHOD_RENDER) || getRequestMethod().equals(Constants.METHOD_EVENT))
{
parameters = urlProvider.parseRenderParameters(this.getHttpServletRequest().getParameterMap(), queryString);
queryString = null;
}
else
{
parameters = urlProvider.parseRenderParameters(this.getHttpServletRequest().getParameterMap(), null);
}
}
return parameters;
}
public void setForwardedQueryString(String queryString)
{
if (!forwarded)
{
throw new IllegalStateException(
"Parameters cannot be appended to "
+ "render request which is not included in a dispatch.");
}
this.parameters = null;
this.queryString = queryString;
// this.urlProvider.parseRenderParameters(super.getParameterMap(), queryString);
this.urlProvider.parseRenderParameters(null,null);
}
public void setIncludedQueryString(String queryString)
throws IllegalStateException
{
if (!included)
{
throw new IllegalStateException(
"Parameters cannot be appended to "
+ "render request which is not included in a dispatch.");
}
this.parameters = null;
this.queryString = queryString;
// this.urlProvider.parseRenderParameters(super.getParameterMap(), queryString);
this.urlProvider.parseRenderParameters(null,null);
}
public Map<String, String[]> getPrivateParameterMap()
{
return Collections.unmodifiableMap(StringUtils
.copyParameters(baseGetParameterMap()));
}
public Map<String, String[]> getPublicParameterMap()
{
Map<String, String[]> map = new HashMap<String, String[]>();
List<String> publicRenderParameterNames = portletWindow
.getPortletEntity().getPortletDefinition()
.getSupportedPublicRenderParameters();
String[] values = null;
if (publicRenderParameterNames != null)
{
for (String string : publicRenderParameterNames)
{
values = urlProvider.getPublicRenderParameters(string);
if (values != null)
{
map.put(string, values);
}
}
}
return Collections.unmodifiableMap(map);
}
public String getWindowID()
{
return portletWindow.getId().getStringId();
}
private void setLifecyclePhase()
{
String lifecyclePhase = getLifecyclePhase();
this.setAttribute(LIFECYCLE_PHASE, lifecyclePhase);
}
@Override
public String getLocalAddr()
{
return (isIncluded() || isForwarded()) ? null : super.getLocalAddr();
}
@Override
public String getLocalName()
{
return (isIncluded() || isForwarded()) ? null : super.getLocalName();
}
@Override
public int getLocalPort()
{
return (isIncluded() || isForwarded()) ? 0 : super.getLocalPort();
}
public String getProtocol()
{
return (isIncluded() || isForwarded()) ? "HTTP/1.1" : super
.getProtocol();
}
@Override
public String getRealPath(String arg0)
{
return (isIncluded() || isForwarded()) ? null : super.getRealPath(arg0);
}
@Override
public String getRemoteAddr()
{
return (isIncluded() || isForwarded()) ? null : super.getRemoteAddr();
}
@Override
public String getRemoteHost()
{
return (isIncluded() || isForwarded()) ? null : super.getRemoteHost();
}
@Override
public int getRemotePort()
{
return (isIncluded() || isForwarded()) ? 0 : super.getRemotePort();
}
@Override
public Cookie[] getCookies()
{
if (isIncluded() || isForwarded())
{
return super.getCookies();
}
else
return super.getCookies();
}
@Override
public long getDateHeader(String arg0)
{
if (isIncluded() || isForwarded())
{
String value = getHeader(arg0);
if (value == null) { return (-1L); }
// Attempt to convert the date header in a variety of formats
return parseDateHeader(value);
}
else
return super.getDateHeader(arg0);
}
@Override
public String getHeader(String arg0)
{
if (isIncluded() || isForwarded())
{
return getProperty(arg0);
}
else
return super.getHeader(arg0);
}
@Override
public Enumeration getHeaderNames()
{
if (isIncluded() || isForwarded())
{
return getPropertyNames();
}
else
return super.getHeaderNames();
}
@Override
public Enumeration getHeaders(String arg0)
{
if (isIncluded() || isForwarded())
{
return getProperties(arg0);
}
else
return super.getHeaders(arg0);
}
@Override
public int getIntHeader(String arg0)
{
if (isIncluded() || isForwarded())
{
String property = getProperty(arg0);
if (property == null)
{
return -1;
}
else
{
return Integer.parseInt(property);
}
}
else
return super.getIntHeader(arg0);
}
public String getPathInfo()
{
if (isIncluded())
return (String) super
.getAttribute("javax.servlet.include.path_info");
else if (isForwarded())
return (String) super
.getAttribute("javax.servlet.forward.path_info");
else
return super.getPathInfo();
}
public String getQueryString()
{
if (isIncluded())
return (String) super
.getAttribute("javax.servlet.include.query_string");
else if (isForwarded())
return (String) super
.getAttribute("javax.servlet.forward.query_string");
else
return super.getQueryString();
}
public String getPathTranslated()
{
if (isIncluded() || isForwarded())
{
String path = getServletPath() + getPathInfo() + "?"
+ getQueryString();
return getRealPath(path);
}
return super.getPathTranslated();
}
public String getRequestURI()
{
if (isIncluded())
return (String) super
.getAttribute("javax.servlet.include.request_uri");
else if (isForwarded())
return (String) super
.getAttribute("javax.servlet.forward.request_uri");
else
return super.getRequestURI();
}
public String getServletPath()
{
if (isIncluded())
return (String) super
.getAttribute("javax.servlet.include.servlet_path");
else if (isForwarded())
return (String) super
.getAttribute("javax.servlet.forward.servlet_path");
else
return super.getServletPath();
}
public StringBuffer getRequestURL()
{
return (isIncluded() || isForwarded()) ? null : super.getRequestURL();
}
@Override
public HttpSession getSession()
{
if (isIncluded() || isForwarded())
{
// ensure cached PortletSession is created (with proper HttpSession
// invalidation check performed)
getPortletSession();
if (portletSession != null)
{
return portletSession.getHttpSession();
}
else
{
return null;
}
}
return super.getSession();
}
@Override
public HttpSession getSession(boolean create)
{
if (isIncluded() || isForwarded())
{
// ensure cached PortletSession is created (with proper HttpSession
// invalidation check performed)
getPortletSession(create);
if (portletSession != null)
{
return portletSession.getHttpSession();
}
else
{
return null;
}
}
return super.getSession();
}
// ============= private methods ==================
/**
* Try to parse the given date as a HTTP date. Borrowed and adapted from
* Tomcat FastHttpDateFormat
*/
private long parseDateHeader(String value)
{
Long dateValue = null;
try
{
dateValue = (Long) dateHeaderParseCache.get(value);
}
catch (Exception e)
{
}
if (dateValue == null)
{
for (int i = 0; i < dateHeaderFormats.length; i++)
{
try
{
Date date = dateHeaderFormats[i].parse(value);
dateValue = new Long(date.getTime());
}
catch (ParseException e)
{
}
}
if (dateValue != null)
{
synchronized (dateHeaderParseCache)
{
if (dateHeaderParseCache.size() > 1000)
{
dateHeaderParseCache.clear();
}
dateHeaderParseCache.put(value, dateValue);
}
}
else
{
throw new IllegalArgumentException(value);
}
}
return dateValue.longValue();
}
public String getLifecyclePhase()
{
return null;
}
private void setCCPPProfile()
{
Profile profile = container.getRequiredContainerServices()
.getCCPPProfileService().getCCPPProfile(servletRequest);
this.setAttribute(CCPP_PROFILE, profile);
}
public void setNamedRequestDispatcher(boolean named)
{
namedRequestDispatcher = named;
}
}
class ServletRequestDispatcher implements RequestDispatcher
{
javax.servlet.RequestDispatcher dispatcher;
public ServletRequestDispatcher(javax.servlet.RequestDispatcher dispatcher)
{
this.dispatcher = dispatcher;
}
public void forward(ServletRequest arg0, ServletResponse arg1)
throws ServletException, IOException
{
dispatcher.include(arg0, arg1);
}
public void include(ServletRequest arg0, ServletResponse arg1)
throws ServletException, IOException
{
dispatcher.include(arg0, arg1);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -