org.directwebremoting.dwrp
Class PollHandler

java.lang.Object
  extended by org.directwebremoting.dwrp.PollHandler
All Implemented Interfaces:
Handler
Direct Known Subclasses:
HtmlPollHandler, PlainPollHandler

public class PollHandler
extends java.lang.Object
implements Handler

A Marshaller that output plain Javascript. This marshaller can be tweaked to output Javascript in an HTML context. This class works in concert with CallScriptConduit, they should be considered closely related and it is important to understand what one does while editing the other.

Author:
Joe Walker [joe at getahead dot ltd dot uk]

Field Summary
protected  boolean activeReverseAjaxEnabled
          Are we doing full reverse ajax
protected  boolean allowGetForSafariButMakeForgeryEasier
          By default we disable GET, but this hinders old Safaris
protected  ConverterManager converterManager
          How we convert parameters
protected  boolean crossDomainSessionSecurity
          Do we perform cross-domain session security checks?
protected static org.apache.commons.logging.Log log
          The log stream
protected  int maxWaitAfterWrite
          Sometimes with proxies, you need to close the stream all the time to make the flush work.
protected  PageNormalizer pageNormalizer
          How we turn pages into the canonical form.
protected  boolean plain
          Are we using plain javascript or html wrapped javascript
protected  ScriptSessionManager scriptSessionManager
          The owner of script sessions
protected  ServerLoadMonitor serverLoadMonitor
          We need to tell the system that we are waiting so it can load adjust
protected  java.lang.String sessionCookieName
          The session cookie name
 
Constructor Summary
PollHandler(boolean plain)
           
 
Method Summary
 void handle(HttpServletRequest request, HttpServletResponse response)
          Handle a URL request that has been mapped to this Handler
protected  void sendErrorScript(HttpServletResponse response, java.lang.String script)
          Send a script to the browser and wrap it in the required prefixes etc.
 void setActiveReverseAjaxEnabled(boolean activeReverseAjaxEnabled)
          Are we doing full reverse ajax
 void setAllowGetForSafariButMakeForgeryEasier(boolean allowGetForSafariButMakeForgeryEasier)
           
 void setConverterManager(ConverterManager converterManager)
          Accessor for the DefaultCreatorManager that we configure
 void setCrossDomainSessionSecurity(boolean crossDomainSessionSecurity)
          Do we perform cross-domain session security checks?
 void setMaxWaitAfterWrite(int maxWaitAfterWrite)
          Sometimes with proxies, you need to close the stream all the time to make the flush work.
 void setPageNormalizer(PageNormalizer pageNormalizer)
          Accessor for the PageNormalizer.
 void setPollAndCometEnabled(boolean pollAndCometEnabled)
          Deprecated. Use setActiveReverseAjaxEnabled(boolean)
 void setScriptSessionManager(ScriptSessionManager scriptSessionManager)
           
 void setServerLoadMonitor(ServerLoadMonitor serverLoadMonitor)
          Accessor for the server load monitor
 void setSessionCookieName(java.lang.String sessionCookieName)
          Alter the session cookie name from the default JSESSIONID.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

sessionCookieName

protected java.lang.String sessionCookieName
The session cookie name


activeReverseAjaxEnabled

protected boolean activeReverseAjaxEnabled
Are we doing full reverse ajax


allowGetForSafariButMakeForgeryEasier

protected boolean allowGetForSafariButMakeForgeryEasier
By default we disable GET, but this hinders old Safaris


maxWaitAfterWrite

protected int maxWaitAfterWrite
Sometimes with proxies, you need to close the stream all the time to make the flush work. A value of -1 indicated that we do not do early closing after writes. See also: org.directwebremoting.servlet.FileHandler.maxWaitAfterWrite


plain

protected boolean plain
Are we using plain javascript or html wrapped javascript


crossDomainSessionSecurity

protected boolean crossDomainSessionSecurity
Do we perform cross-domain session security checks?


pageNormalizer

protected PageNormalizer pageNormalizer
How we turn pages into the canonical form.


serverLoadMonitor

protected ServerLoadMonitor serverLoadMonitor
We need to tell the system that we are waiting so it can load adjust


converterManager

protected ConverterManager converterManager
How we convert parameters


scriptSessionManager

protected ScriptSessionManager scriptSessionManager
The owner of script sessions


log

protected static final org.apache.commons.logging.Log log
The log stream

Constructor Detail

PollHandler

public PollHandler(boolean plain)
Parameters:
plain - Are we using plain javascript or html wrapped javascript
Method Detail

handle

public void handle(HttpServletRequest request,
                   HttpServletResponse response)
            throws java.io.IOException
Description copied from interface: Handler
Handle a URL request that has been mapped to this Handler

Specified by:
handle in interface Handler
Parameters:
request - The HTTP request data
response - Where we write the HTTP response data
Throws:
java.io.IOException - If the write process fails

sendErrorScript

protected void sendErrorScript(HttpServletResponse response,
                               java.lang.String script)
                        throws java.io.IOException
Send a script to the browser and wrap it in the required prefixes etc.

Parameters:
response - The http response to write to
script - The script to write
Throws:
java.io.IOException - if writing fails.

setCrossDomainSessionSecurity

public void setCrossDomainSessionSecurity(boolean crossDomainSessionSecurity)
Do we perform cross-domain session security checks?

Parameters:
crossDomainSessionSecurity - the cross domain session security setting

setConverterManager

public void setConverterManager(ConverterManager converterManager)
Accessor for the DefaultCreatorManager that we configure

Parameters:
converterManager - The new DefaultConverterManager

setServerLoadMonitor

public void setServerLoadMonitor(ServerLoadMonitor serverLoadMonitor)
Accessor for the server load monitor

Parameters:
serverLoadMonitor - the new server load monitor

setPageNormalizer

public void setPageNormalizer(PageNormalizer pageNormalizer)
Accessor for the PageNormalizer.

Parameters:
pageNormalizer - The new PageNormalizer

setScriptSessionManager

public void setScriptSessionManager(ScriptSessionManager scriptSessionManager)
Parameters:
scriptSessionManager - the scriptSessionManager to set

setSessionCookieName

public void setSessionCookieName(java.lang.String sessionCookieName)
Alter the session cookie name from the default JSESSIONID.

Parameters:
sessionCookieName - the sessionCookieName to set

setPollAndCometEnabled

public void setPollAndCometEnabled(boolean pollAndCometEnabled)
Deprecated. Use setActiveReverseAjaxEnabled(boolean)

Use setActiveReverseAjaxEnabled(boolean)

Parameters:
pollAndCometEnabled - Are we doing full reverse ajax

setActiveReverseAjaxEnabled

public void setActiveReverseAjaxEnabled(boolean activeReverseAjaxEnabled)
Are we doing full reverse ajax

Parameters:
activeReverseAjaxEnabled - Are we doing full reverse ajax

setAllowGetForSafariButMakeForgeryEasier

public void setAllowGetForSafariButMakeForgeryEasier(boolean allowGetForSafariButMakeForgeryEasier)
Parameters:
allowGetForSafariButMakeForgeryEasier - Do we reduce security to help Safari

setMaxWaitAfterWrite

public void setMaxWaitAfterWrite(int maxWaitAfterWrite)
Sometimes with proxies, you need to close the stream all the time to make the flush work. A value of -1 indicated that we do not do early closing after writes.

Parameters:
maxWaitAfterWrite - the maxWaitAfterWrite to set