Groovy Documentation

org.codehaus.groovy.grails.web.servlet
[Java] Class GrailsDispatcherServlet

java.lang.Object
  javax.servlet.GenericServlet
      javax.servlet.http.HttpServlet
          org.springframework.web.servlet.HttpServletBean
              org.springframework.web.servlet.FrameworkServlet
                  org.springframework.web.servlet.DispatcherServlet
                      org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet

public class GrailsDispatcherServlet
extends org.springframework.web.servlet.DispatcherServlet

Handles incoming requests for Grails.

Loads the Spring configuration based on the Grails application in the parent application context.

Authors:
Steven Devijver
Graeme Rocher
Since:
Jul 2, 2005


Field Summary
protected org.springframework.web.servlet.HandlerInterceptor[] interceptors

protected org.springframework.web.servlet.ViewResolver layoutViewResolver

protected org.springframework.web.multipart.MultipartResolver multipartResolver

 
Fields inherited from class org.springframework.web.servlet.DispatcherServlet
MULTIPART_RESOLVER_BEAN_NAME, LOCALE_RESOLVER_BEAN_NAME, THEME_RESOLVER_BEAN_NAME, HANDLER_MAPPING_BEAN_NAME, HANDLER_ADAPTER_BEAN_NAME, HANDLER_EXCEPTION_RESOLVER_BEAN_NAME, REQUEST_TO_VIEW_NAME_TRANSLATOR_BEAN_NAME, VIEW_RESOLVER_BEAN_NAME, FLASH_MAP_MANAGER_BEAN_NAME, WEB_APPLICATION_CONTEXT_ATTRIBUTE, LOCALE_RESOLVER_ATTRIBUTE, THEME_RESOLVER_ATTRIBUTE, THEME_SOURCE_ATTRIBUTE, INPUT_FLASH_MAP_ATTRIBUTE, OUTPUT_FLASH_MAP_ATTRIBUTE, FLASH_MAP_MANAGER_ATTRIBUTE, PAGE_NOT_FOUND_LOG_CATEGORY, DEFAULT_NAMESPACE_SUFFIX, DEFAULT_CONTEXT_CLASS, SERVLET_CONTEXT_PREFIX
 
Fields inherited from class org.springframework.web.servlet.FrameworkServlet
DEFAULT_NAMESPACE_SUFFIX, DEFAULT_CONTEXT_CLASS, SERVLET_CONTEXT_PREFIX
 
Constructor Summary
GrailsDispatcherServlet()

Constructor.

 
Method Summary
protected javax.servlet.http.HttpServletRequest checkMultipart(javax.servlet.http.HttpServletRequest request)

protected void copyParamsFromPreviousRequest(org.springframework.web.context.request.RequestAttributes previousRequestAttributes, GrailsWebRequest requestAttributes)

protected org.springframework.web.context.WebApplicationContext createWebApplicationContext(org.springframework.web.context.WebApplicationContext parent)

void destroy()

protected void doDispatch(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)

protected org.springframework.web.servlet.HandlerInterceptor[] establishInterceptors(org.springframework.web.context.WebApplicationContext webContext)

Evalutes the given WebApplicationContext for all HandlerInterceptor and WebRequestInterceptor instances

org.springframework.web.servlet.HandlerExecutionChain getHandler(javax.servlet.http.HttpServletRequest request)

protected void initFrameworkServlet()

protected void initStrategies(org.springframework.context.ApplicationContext context)

void setApplication(GrailsApplication application)

Dependency injection for the application.

protected void triggerAfterCompletion(org.springframework.web.servlet.HandlerExecutionChain mappedHandler, int interceptorIndex, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.Exception ex)

Convert the request into a multipart request.

protected javax.servlet.http.HttpServletResponse useWrappedOrOriginalResponse(javax.servlet.http.HttpServletResponse response)

Trigger afterCompletion callbacks on the mapped HandlerInterceptors.

 
Methods inherited from class org.springframework.web.servlet.DispatcherServlet
org.springframework.web.servlet.DispatcherServlet#getThemeSource(), org.springframework.web.servlet.DispatcherServlet#setDetectAllHandlerMappings(boolean), org.springframework.web.servlet.DispatcherServlet#setDetectAllHandlerAdapters(boolean), org.springframework.web.servlet.DispatcherServlet#setDetectAllHandlerExceptionResolvers(boolean), org.springframework.web.servlet.DispatcherServlet#setDetectAllViewResolvers(boolean), org.springframework.web.servlet.DispatcherServlet#setCleanupAfterInclude(boolean), org.springframework.web.servlet.DispatcherServlet#getMultipartResolver(), org.springframework.web.servlet.DispatcherServlet#destroy(), org.springframework.web.servlet.DispatcherServlet#refresh(), org.springframework.web.servlet.DispatcherServlet#getNamespace(), org.springframework.web.servlet.DispatcherServlet#setNamespace(java.lang.String), org.springframework.web.servlet.DispatcherServlet#getContextAttribute(), org.springframework.web.servlet.DispatcherServlet#getWebApplicationContext(), org.springframework.web.servlet.DispatcherServlet#onApplicationEvent(org.springframework.context.event.ContextRefreshedEvent), org.springframework.web.servlet.DispatcherServlet#setContextAttribute(java.lang.String), org.springframework.web.servlet.DispatcherServlet#setContextClass(java.lang.Class), org.springframework.web.servlet.DispatcherServlet#getContextClass(), org.springframework.web.servlet.DispatcherServlet#setContextId(java.lang.String), org.springframework.web.servlet.DispatcherServlet#getContextId(), org.springframework.web.servlet.DispatcherServlet#setContextInitializerClasses(java.lang.String), org.springframework.web.servlet.DispatcherServlet#setContextInitializers([Lorg.springframework.context.ApplicationContextInitializer;), org.springframework.web.servlet.DispatcherServlet#setContextConfigLocation(java.lang.String), org.springframework.web.servlet.DispatcherServlet#getContextConfigLocation(), org.springframework.web.servlet.DispatcherServlet#setPublishContext(boolean), org.springframework.web.servlet.DispatcherServlet#setPublishEvents(boolean), org.springframework.web.servlet.DispatcherServlet#setThreadContextInheritable(boolean), org.springframework.web.servlet.DispatcherServlet#setDispatchOptionsRequest(boolean), org.springframework.web.servlet.DispatcherServlet#setDispatchTraceRequest(boolean), org.springframework.web.servlet.DispatcherServlet#getServletContextAttributeName(), org.springframework.web.servlet.DispatcherServlet#init(), org.springframework.web.servlet.DispatcherServlet#setEnvironment(org.springframework.core.env.Environment), org.springframework.web.servlet.DispatcherServlet#getServletContext(), org.springframework.web.servlet.DispatcherServlet#getServletName(), org.springframework.web.servlet.DispatcherServlet#service(javax.servlet.ServletRequest, javax.servlet.ServletResponse), org.springframework.web.servlet.DispatcherServlet#log(java.lang.String, java.lang.Throwable), org.springframework.web.servlet.DispatcherServlet#log(java.lang.String), org.springframework.web.servlet.DispatcherServlet#init(javax.servlet.ServletConfig), org.springframework.web.servlet.DispatcherServlet#getServletConfig(), org.springframework.web.servlet.DispatcherServlet#getServletInfo(), org.springframework.web.servlet.DispatcherServlet#getInitParameter(java.lang.String), org.springframework.web.servlet.DispatcherServlet#getInitParameterNames(), org.springframework.web.servlet.DispatcherServlet#wait(), org.springframework.web.servlet.DispatcherServlet#wait(long), org.springframework.web.servlet.DispatcherServlet#wait(long, int), org.springframework.web.servlet.DispatcherServlet#equals(java.lang.Object), org.springframework.web.servlet.DispatcherServlet#toString(), org.springframework.web.servlet.DispatcherServlet#hashCode(), org.springframework.web.servlet.DispatcherServlet#getClass(), org.springframework.web.servlet.DispatcherServlet#notify(), org.springframework.web.servlet.DispatcherServlet#notifyAll()
 
Methods inherited from class org.springframework.web.servlet.FrameworkServlet
org.springframework.web.servlet.FrameworkServlet#destroy(), org.springframework.web.servlet.FrameworkServlet#refresh(), org.springframework.web.servlet.FrameworkServlet#getNamespace(), org.springframework.web.servlet.FrameworkServlet#setNamespace(java.lang.String), org.springframework.web.servlet.FrameworkServlet#getContextAttribute(), org.springframework.web.servlet.FrameworkServlet#getWebApplicationContext(), org.springframework.web.servlet.FrameworkServlet#onApplicationEvent(org.springframework.context.event.ContextRefreshedEvent), org.springframework.web.servlet.FrameworkServlet#setContextAttribute(java.lang.String), org.springframework.web.servlet.FrameworkServlet#setContextClass(java.lang.Class), org.springframework.web.servlet.FrameworkServlet#getContextClass(), org.springframework.web.servlet.FrameworkServlet#setContextId(java.lang.String), org.springframework.web.servlet.FrameworkServlet#getContextId(), org.springframework.web.servlet.FrameworkServlet#setContextInitializerClasses(java.lang.String), org.springframework.web.servlet.FrameworkServlet#setContextInitializers([Lorg.springframework.context.ApplicationContextInitializer;), org.springframework.web.servlet.FrameworkServlet#setContextConfigLocation(java.lang.String), org.springframework.web.servlet.FrameworkServlet#getContextConfigLocation(), org.springframework.web.servlet.FrameworkServlet#setPublishContext(boolean), org.springframework.web.servlet.FrameworkServlet#setPublishEvents(boolean), org.springframework.web.servlet.FrameworkServlet#setThreadContextInheritable(boolean), org.springframework.web.servlet.FrameworkServlet#setDispatchOptionsRequest(boolean), org.springframework.web.servlet.FrameworkServlet#setDispatchTraceRequest(boolean), org.springframework.web.servlet.FrameworkServlet#getServletContextAttributeName(), org.springframework.web.servlet.FrameworkServlet#init(), org.springframework.web.servlet.FrameworkServlet#setEnvironment(org.springframework.core.env.Environment), org.springframework.web.servlet.FrameworkServlet#getServletContext(), org.springframework.web.servlet.FrameworkServlet#getServletName(), org.springframework.web.servlet.FrameworkServlet#service(javax.servlet.ServletRequest, javax.servlet.ServletResponse), org.springframework.web.servlet.FrameworkServlet#log(java.lang.String, java.lang.Throwable), org.springframework.web.servlet.FrameworkServlet#log(java.lang.String), org.springframework.web.servlet.FrameworkServlet#init(javax.servlet.ServletConfig), org.springframework.web.servlet.FrameworkServlet#getServletConfig(), org.springframework.web.servlet.FrameworkServlet#getServletInfo(), org.springframework.web.servlet.FrameworkServlet#getInitParameter(java.lang.String), org.springframework.web.servlet.FrameworkServlet#getInitParameterNames(), org.springframework.web.servlet.FrameworkServlet#wait(), org.springframework.web.servlet.FrameworkServlet#wait(long), org.springframework.web.servlet.FrameworkServlet#wait(long, int), org.springframework.web.servlet.FrameworkServlet#equals(java.lang.Object), org.springframework.web.servlet.FrameworkServlet#toString(), org.springframework.web.servlet.FrameworkServlet#hashCode(), org.springframework.web.servlet.FrameworkServlet#getClass(), org.springframework.web.servlet.FrameworkServlet#notify(), org.springframework.web.servlet.FrameworkServlet#notifyAll()
 

Field Detail

interceptors

protected org.springframework.web.servlet.HandlerInterceptor[] interceptors


layoutViewResolver

protected org.springframework.web.servlet.ViewResolver layoutViewResolver


multipartResolver

protected org.springframework.web.multipart.MultipartResolver multipartResolver


 
Constructor Detail

GrailsDispatcherServlet

public GrailsDispatcherServlet()
Constructor.


 
Method Detail

checkMultipart

protected javax.servlet.http.HttpServletRequest checkMultipart(javax.servlet.http.HttpServletRequest request)


copyParamsFromPreviousRequest

for (int i = interceptorIndex; i >= 0; i--) {
protected void copyParamsFromPreviousRequest(org.springframework.web.context.request.RequestAttributes previousRequestAttributes, GrailsWebRequest requestAttributes)


createWebApplicationContext

// construct the SpringConfig for the container managed application
protected org.springframework.web.context.WebApplicationContext createWebApplicationContext(org.springframework.web.context.WebApplicationContext parent)


destroy

try {
public void destroy()


doDispatch

// Expose current LocaleResolver and request as LocaleContext.
protected void doDispatch(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)


establishInterceptors

protected org.springframework.web.servlet.HandlerInterceptor[] establishInterceptors(org.springframework.web.context.WebApplicationContext webContext)
Evalutes the given WebApplicationContext for all HandlerInterceptor and WebRequestInterceptor instances
Parameters:
webContext - The WebApplicationContext
Returns:
An array of HandlerInterceptor instances


getHandler

public org.springframework.web.servlet.HandlerExecutionChain getHandler(javax.servlet.http.HttpServletRequest request)


initFrameworkServlet

@Override
protected void initFrameworkServlet()


initStrategies

protected void initStrategies(ApplicationContext context) {
protected void initStrategies(org.springframework.context.ApplicationContext context)


setApplication

public void setApplication(GrailsApplication application)
Dependency injection for the application.
Parameters:
application - the application


triggerAfterCompletion

protected void triggerAfterCompletion(org.springframework.web.servlet.HandlerExecutionChain mappedHandler, int interceptorIndex, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.Exception ex)
Convert the request into a multipart request. If no multipart resolver is set, simply use the existing request.
Parameters:
request - current HTTP request
Returns:
the processed request (multipart wrapper if necessary)


useWrappedOrOriginalResponse

protected javax.servlet.http.HttpServletResponse useWrappedOrOriginalResponse(javax.servlet.http.HttpServletResponse response)
Trigger afterCompletion callbacks on the mapped HandlerInterceptors. Will just invoke afterCompletion for all interceptors whose preHandle invocation has successfully completed and returned true.
Parameters:
mappedHandler - the mapped HandlerExecutionChain
interceptorIndex - index of last interceptor that successfully completed
ex - Exception thrown on handler execution, or null if none
See Also:
org.springframework.web.servlet.HandlerInterceptor#afterCompletion


 

Groovy Documentation