Groovy Documentation

groovy.servlet
[Java] Class ServletBinding

java.lang.Object
  groovy.lang.GroovyObjectSupport
      groovy.lang.Binding
          groovy.servlet.ServletBinding

public class ServletBinding
extends Binding

Servlet-specific binding extension to lazy load the writer or the output stream from the response.

Eager variables

Lazy variables

As per the Servlet specification, a call to response.getWriter() should not be done if a call to response.getOutputStream() has already occurred or the other way around. You may wonder then how the above lazy variables can possibly be provided - since setting them up would involve calling both of the above methods. The trick is catered for behind the scenes using lazy variables. Lazy bound variables can be requested without side effects; under the covers the writer and stream are wrapped. That means response.getWriter() is never directly called until some output is done using 'out' or 'html'. Once a write method call is done using either of these variable, then an attempt to write using 'sout' will cause an IllegalStateException. Similarly, if a write method call on 'sout' has been done already, then any further write method call on 'out' or 'html' will cause an IllegalStateException.

Reserved internal variable names (see "Methods" below)

If response.getWriter() is called directly (without using out), then a write method call on 'sout' will not cause the IllegalStateException, but it will still be invalid. It is the responsibility of the user of this class, to not to mix these different usage styles. The same applies to calling response.getOutputStream() and using 'out' or 'html'.

Methods

Authors:
Guillaume Laforge
Christian Stein
Jochen Theodorou


Method Summary
java.lang.Object ServletBinding(HttpServletRequest request, HttpServletResponse response, ServletContext context)

Initializes a servlet binding.

void forward(java.lang.String path)

java.lang.Object getVariable(java.lang.String name)

@return a writer, an output stream, a markup builder or another requested object

java.util.Map getVariables()

void include(java.lang.String path)

void redirect(java.lang.String location)

void setVariable(java.lang.String name, java.lang.Object value)

 
Methods inherited from class Binding
getProperty, getVariable, getVariables, hasVariable, setProperty, setVariable
 
Methods inherited from class GroovyObjectSupport
getMetaClass, getProperty, invokeMethod, setMetaClass, setProperty
 
Methods inherited from class java.lang.Object
java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()
 

Method Detail

ServletBinding

public java.lang.Object ServletBinding(HttpServletRequest request, HttpServletResponse response, ServletContext context)
Initializes a servlet binding.
Parameters:
request - the HttpServletRequest object
response - the HttpServletRequest object
context - the ServletContext object


forward

public void forward(java.lang.String path)


getVariable

@Override
public java.lang.Object getVariable(java.lang.String name)
Returns:
a writer, an output stream, a markup builder or another requested object


getVariables

@Override
public java.util.Map getVariables()


include

public void include(java.lang.String path)


redirect

public void redirect(java.lang.String location)


setVariable

@Override
public void setVariable(java.lang.String name, java.lang.Object value)


 

Groovy Documentation