The request object is an instance of the Servlet API's HttpServletRequest class


class BookController {
	def list = { "User agent: " + request.getHeader("User-Agent")

render(view:actionName) } }


The HttpServletRequest class is useful for, amongst other things, obtaining request headers, storing request scoped attributes and establishing information about the client. Refer to the Servlet API's javadocs for further information.

Grails enhances the HttpServletRequest instance by adding the following new properties and methods:

The XML and JSON properties are useful for XML APIs and can be used to parse incoming XML or JSON packages. For example given a request body of:

   <title>The Stand</title>

This can be parsed trivially:

def title = request.XML?.book?.title
render "The Title is $title"

Request attributes which are normally accessible via the getAttribute can also be indexed into using the array index operator or de-reference operator:

def user = request['user']

request['user'] = 'John'

asset 'John' == request.user