Package groovy.servlet
Class ServletBinding
java.lang.Object
groovy.lang.GroovyObjectSupport
groovy.lang.Binding
groovy.servlet.ServletBinding
- All Implemented Interfaces:
- GroovyObject
Servlet-specific binding extension to lazy load the writer or the output
 stream from the response.
 
Eager variables
- "request" : the HttpServletRequestobject
- "response" : the HttpServletRequestobject
- "context" : the ServletContextobject
- "application" : same as context
- "session" : shorthand for request.getSession(false)- can be null!
- "params" : map of all form parameters - can be empty
- "headers" : map of all request header fields
Lazy variables
- "out" : response.getWriter()
- "sout" : response.getOutputStream()
- "html" : new MarkupBuilder(response.getWriter())-expandEmptyElementsflag is set to true
- "json" : new JsonBuilder()
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)
- "forward"
- "include"
- "redirect"
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 mix these different usage
 styles. The same applies to calling response.getOutputStream() and using 'out' or 'html'.
 Methods
- "forward(String path)" : request.getRequestDispatcher(path).forward(request, response)
- "include(String path)" : request.getRequestDispatcher(path).include(request, response)
- "redirect(String location)" : response.sendRedirect(location)
- 
Constructor SummaryConstructorsConstructorDescriptionServletBinding(HttpServletRequest request, HttpServletResponse response, ServletContext context) Initializes a servlet binding.
- 
Method SummaryModifier and TypeMethodDescriptionvoidgetVariable(String name) voidvoidvoidsetVariable(String name, Object value) Sets the value of the given variableMethods inherited from class groovy.lang.BindinggetProperty, hasVariable, removeVariable, setPropertyMethods inherited from class groovy.lang.GroovyObjectSupportgetMetaClass, setMetaClassMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface groovy.lang.GroovyObjectinvokeMethod
- 
Constructor Details- 
ServletBindingpublic ServletBinding(HttpServletRequest request, HttpServletResponse response, ServletContext context) Initializes a servlet binding.- Parameters:
- request- the HttpServletRequest object
- response- the HttpServletRequest object
- context- the ServletContext object
 
 
- 
- 
Method Details- 
setVariableDescription copied from class:BindingSets the value of the given variable- Overrides:
- setVariablein class- Binding
- Parameters:
- name- the name of the variable to set
- value- the new value for the given variable
 
- 
getVariables- Overrides:
- getVariablesin class- Binding
 
- 
getVariable- Overrides:
- getVariablein class- Binding
- Parameters:
- name- the name of the variable to lookup
- Returns:
- a writer, an output stream, a markup builder or another requested object
 
- 
forward- Throws:
- ServletException
- IOException
 
- 
include- Throws:
- ServletException
- IOException
 
- 
redirect- Throws:
- IOException
 
 
-