Java Doc for HandlerInterceptor.java in  » J2EE » spring-framework-2.0.6 » org » springframework » web » portlet » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » J2EE » spring framework 2.0.6 » org.springframework.web.portlet 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


org.springframework.web.portlet.HandlerInterceptor

All known Subclasses:   org.springframework.web.portlet.handler.HandlerInterceptorAdapter,  org.springframework.web.portlet.handler.WebRequestHandlerInterceptorAdapter,
HandlerInterceptor
public interface HandlerInterceptor (Code)
Workflow interface that allows for customized handler execution chains. Applications can register any number of existing or custom interceptors for certain groups of handlers, to add common preprocessing behavior without needing to modify each handler implementation.

A HandlerInterceptor gets called before the appropriate org.springframework.web.portlet.HandlerAdapter triggers the execution of the handler itself. This mechanism can be used for a large field of preprocessing aspects, e.g. for authorization checks, or common handler behavior like locale or theme changes. Its main purpose is to permit the factoring out of otherwise repetitive handler code.

Typically an interceptor chain is defined per org.springframework.web.portlet.HandlerMapping bean, sharing its granularity. To be able to apply a certain interceptor chain to a group of handlers, one needs to map the desired handlers via one HandlerMapping bean. The interceptors themselves are defined as beans in the application context, referenced by the mapping bean definition via its org.springframework.web.portlet.handler.AbstractHandlerMapping.setInterceptors "interceptors" property (in XML: a <list> of <ref> elements).

A HandlerInterceptor is basically similar to a Servlet 2.3 javax.servlet.Filter , but in contrast to the latter it allows custom pre-processing with the option to prohibit the execution of the handler itself, and custom post-processing. Filters are more powerful; for example they allow for exchanging the request and response objects that are handed down the chain. Note that a filter gets configured in web.xml, a HandlerInterceptor in the application context.

As a basic guideline, fine-grained handler-related preprocessing tasks are candidates for HandlerInterceptor implementations, especially factored-out common handler code and authorization checks. On the other hand, a Filter is well-suited for request content and view content handling, like multipart forms and GZIP compression. This typically shows when one needs to map the filter to certain content types (e.g. images), or to all requests. Be aware that filters cannot be applied to portlet requests (they only operate on servlet requests), so for portlet requests interceptors are essential.

If we assume a "sunny day" request (i.e. a request where nothing goes wrong and all is well), the workflow of a HandlerInterceptor will be as follows:

  1. (DispatcherServlet maps a request to particular handler and assembles a handler execution chain consisting of the handler that is to be invoked and all of the HandlerInterceptor instances that apply to the request.)
  2. org.springframework.web.portlet.HandlerInterceptor.preHandleAction(javax.portlet.ActionRequestjavax.portlet.ActionResponseObject) preHandleAction(..) is called; if the invocation of this method returns true then this workflow continues
  3. The target handler handles the action phase of the request (via org.springframework.web.portlet.HandlerAdapter.handleAction(javax.portlet.ActionRequestjavax.portlet.ActionResponseObject) HandlerAdapter.handleAction(..) )
  4. org.springframework.web.portlet.HandlerInterceptor.afterActionCompletion(javax.portlet.ActionRequestjavax.portlet.ActionResponseObjectException) afterActionCompletion(..) is called
  5. org.springframework.web.portlet.HandlerInterceptor.preHandleRender(javax.portlet.RenderRequestjavax.portlet.RenderResponseObject) preHandleRender(..) is called; if the invocation of this method returns true then this workflow continues
  6. The target handler handles the render phase of the request (via org.springframework.web.portlet.HandlerAdapter.handleRender(javax.portlet.RenderRequestjavax.portlet.RenderResponseObject) HandlerAdapter.handleRender(..) )
  7. org.springframework.web.portlet.HandlerInterceptor.postHandleRender(javax.portlet.RenderRequestjavax.portlet.RenderResponseObjectModelAndView) postHandleRender(..) is called
  8. org.springframework.web.portlet.HandlerInterceptor.afterRenderCompletion(javax.portlet.RenderRequestjavax.portlet.RenderResponseObjectException) afterRenderCompletion(..) is called

author:
   Juergen Hoeller
author:
   John A. Lewis
since:
   2.0
See Also:   HandlerExecutionChain.getInterceptors
See Also:   org.springframework.web.portlet.HandlerMapping
See Also:   org.springframework.web.portlet.handler.AbstractHandlerMapping.setInterceptors
See Also:   org.springframework.web.portlet.HandlerExecutionChain




Method Summary
 voidafterActionCompletion(ActionRequest request, ActionResponse response, Object handler, Exception ex)
     Callback after completion of request processing in the action phase, that is, after rendering the view.
 voidafterRenderCompletion(RenderRequest request, RenderResponse response, Object handler, Exception ex)
     Callback after completion of request processing, that is, after rendering the view.
 voidpostHandleRender(RenderRequest request, RenderResponse response, Object handler, ModelAndView modelAndView)
     Intercept the execution of a handler in the render phase.

Called after a HandlerAdapter actually invoked the handler, but before the DispatcherPortlet renders the view.

 booleanpreHandleAction(ActionRequest request, ActionResponse response, Object handler)
     Intercept the execution of a handler in the action phase.

Called after a HandlerMapping determines an appropriate handler object to handle an ActionRequest , but before said HandlerAdapter actually invokes the handler.

DispatcherPortlet processes a handler in an execution chain, consisting of any number of interceptors, with the handler itself at the end. With this method, each interceptor can decide to abort the execution chain, typically throwing an exception or writing a custom response.
Parameters:
  request - current portlet action request
Parameters:
  response - current portlet action response
Parameters:
  handler - chosen handler to execute, for type and/or instance evaluation true if the execution chain should proceed with thenext interceptor or the handler itself.

 booleanpreHandleRender(RenderRequest request, RenderResponse response, Object handler)
     Intercept the execution of a handler in the render phase.

Called after a HandlerMapping determines an appropriate handler object to handle a RenderRequest , but before said HandlerAdapter actually invokes the handler.

DispatcherPortlet processes a handler in an execution chain, consisting of any number of interceptors, with the handler itself at the end. With this method, each interceptor can decide to abort the execution chain, typically throwing an exception or writing a custom response.
Parameters:
  request - current portlet render request
Parameters:
  response - current portlet render response
Parameters:
  handler - chosen handler to execute, for type and/or instance evaluation true if the execution chain should proceed with thenext interceptor or the handler itself.




Method Detail
afterActionCompletion
void afterActionCompletion(ActionRequest request, ActionResponse response, Object handler, Exception ex) throws Exception(Code)
Callback after completion of request processing in the action phase, that is, after rendering the view. Will be called on any outcome of handler execution, thus allowing for proper resource cleanup.

Note: Will only be called if this interceptor's HandlerInterceptor.preHandleAction(javax.portlet.ActionRequest,javax.portlet.ActionResponse,Object) method has successfully completed and returned true!
Parameters:
  request - current portlet action request
Parameters:
  response - current portlet action response
Parameters:
  handler - chosen handler to execute, for type and/or instance examination
Parameters:
  ex - exception thrown on handler execution, if any (only included asadditional context information for the case where a handler threw an exception;request execution may have failed even when this argument is null)
throws:
  Exception - in case of errors




afterRenderCompletion
void afterRenderCompletion(RenderRequest request, RenderResponse response, Object handler, Exception ex) throws Exception(Code)
Callback after completion of request processing, that is, after rendering the view. Will be called on any outcome of handler execution, thus allowing for proper resource cleanup.

Note: Will only be called if this interceptor's HandlerInterceptor.preHandleRender(javax.portlet.RenderRequest,javax.portlet.RenderResponse,Object) method has successfully completed and returned true!
Parameters:
  request - current portlet render request
Parameters:
  response - current portlet render response
Parameters:
  handler - chosen handler to execute, for type and/or instance examination
Parameters:
  ex - exception thrown on handler execution, if any
throws:
  Exception - in case of errors




postHandleRender
void postHandleRender(RenderRequest request, RenderResponse response, Object handler, ModelAndView modelAndView) throws Exception(Code)
Intercept the execution of a handler in the render phase.

Called after a HandlerAdapter actually invoked the handler, but before the DispatcherPortlet renders the view. Can thus expose additional model objects to the view via the given ModelAndView .

DispatcherPortlet processes a handler in an execution chain, consisting of any number of interceptors, with the handler itself at the end. With this method, each interceptor can post-process an execution, getting applied in inverse order of the execution chain.
Parameters:
  request - current portlet render request
Parameters:
  response - current portlet render response
Parameters:
  handler - chosen handler to execute, for type and/or instance examination
Parameters:
  modelAndView - the ModelAndView that the handler returned(can also be null)
throws:
  Exception - in case of errors




preHandleAction
boolean preHandleAction(ActionRequest request, ActionResponse response, Object handler) throws Exception(Code)
Intercept the execution of a handler in the action phase.

Called after a HandlerMapping determines an appropriate handler object to handle an ActionRequest , but before said HandlerAdapter actually invokes the handler.

DispatcherPortlet processes a handler in an execution chain, consisting of any number of interceptors, with the handler itself at the end. With this method, each interceptor can decide to abort the execution chain, typically throwing an exception or writing a custom response.
Parameters:
  request - current portlet action request
Parameters:
  response - current portlet action response
Parameters:
  handler - chosen handler to execute, for type and/or instance evaluation true if the execution chain should proceed with thenext interceptor or the handler itself. Else, DispatcherPortletassumes that this interceptor has already dealt with the response itself
throws:
  Exception - in case of errors




preHandleRender
boolean preHandleRender(RenderRequest request, RenderResponse response, Object handler) throws Exception(Code)
Intercept the execution of a handler in the render phase.

Called after a HandlerMapping determines an appropriate handler object to handle a RenderRequest , but before said HandlerAdapter actually invokes the handler.

DispatcherPortlet processes a handler in an execution chain, consisting of any number of interceptors, with the handler itself at the end. With this method, each interceptor can decide to abort the execution chain, typically throwing an exception or writing a custom response.
Parameters:
  request - current portlet render request
Parameters:
  response - current portlet render response
Parameters:
  handler - chosen handler to execute, for type and/or instance evaluation true if the execution chain should proceed with thenext interceptor or the handler itself. Else, DispatcherPortletassumes that this interceptor has already dealt with the response itself
throws:
  Exception - in case of errors




www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.