Java Doc for TemplateServlet.java in  » Scripting » groovy-1.0 » groovy » servlet » 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 » Scripting » groovy 1.0 » groovy.servlet 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


groovy.servlet.AbstractHttpServlet
   groovy.servlet.TemplateServlet

TemplateServlet
public class TemplateServlet extends AbstractHttpServlet (Code)
A generic servlet for serving (mostly HTML) templates.

It delegates work to a groovy.text.TemplateEngine implementation processing HTTP requests.

Usage

helloworld.html is a headless HTML-like template

 <html>
 <body>
 <% 3.times { %>
 Hello World!
 <% } %>
 <br>
 </body>
 </html> 
 
Minimal web.xml example serving HTML-like templates

 <web-app>
 <servlet>
 <servlet-name>template</servlet-name>
 <servlet-class>groovy.servlet.TemplateServlet</servlet-class>
 </servlet>
 <servlet-mapping>
 <servlet-name>template</servlet-name>
 <url-pattern>*.html</url-pattern>
 </servlet-mapping>
 </web-app>
 

Template engine configuration

By default, the TemplateServer uses the groovy.text.SimpleTemplateEngine which interprets JSP-like templates. The init parameter template.engine defines the fully qualified class name of the template to use:

 template.engine = [empty] - equals groovy.text.SimpleTemplateEngine
 template.engine = groovy.text.SimpleTemplateEngine
 template.engine = groovy.text.GStringTemplateEngine
 template.engine = groovy.text.XmlTemplateEngine
 

Logging and extra-output options

This implementation provides a verbosity flag switching log statements. The servlet init parameter name is:

 generate.by = true(default) | false
 

See Also:   TemplateServlet.setVariables(ServletBinding)
author:
   Christian Stein
author:
   Guillaume Laforge
version:
   2.0



Constructor Summary
public  TemplateServlet()
     Create new TemplateSerlvet.

Method Summary
protected  TemplategetTemplate(File file)
     Gets the template created by the underlying engine parsing the request.

This method looks up a simple (weak) hash map for an existing template object that matches the source file.

public  voidinit(ServletConfig config)
     Initializes the servlet from hints the container passes.
protected  TemplateEngineinitTemplateEngine(ServletConfig config)
     Creates the template engine. Called by TemplateServlet.init(ServletConfig) and returns just new groovy.text.SimpleTemplateEngine() if the init parameter template.engine is not set by the container configuration.
Parameters:
  config - Current serlvet configuration passed by the container.
public  voidservice(HttpServletRequest request, HttpServletResponse response)
     Services the request with a response.

First the request is parsed for the source file uri.

protected  voidsetVariables(ServletBinding binding)
     Override this method to set your variables to the Groovy binding.

All variables bound the binding are passed to the template source text, e.g.



Constructor Detail
TemplateServlet
public TemplateServlet()(Code)
Create new TemplateSerlvet.




Method Detail
getTemplate
protected Template getTemplate(File file) throws ServletException(Code)
Gets the template created by the underlying engine parsing the request.

This method looks up a simple (weak) hash map for an existing template object that matches the source file. If the source file didn't change in length and its last modified stamp hasn't changed compared to a precompiled template object, this template is used. Otherwise, there is no or an invalid template object cache entry, a new one is created by the underlying template engine. This new instance is put to the cache for consecutive calls.

The template that will produce the response text.
Parameters:
  file - The HttpServletRequest.
throws:
  ServletException - If the request specified an invalid template source file



init
public void init(ServletConfig config) throws ServletException(Code)
Initializes the servlet from hints the container passes.

Delegates to sub-init methods and parses the following parameters:

  • "generatedBy" : boolean, appends "Generated by ..." to the HTML response text generated by this servlet.

Parameters:
  config - Passed by the servlet container.
throws:
  ServletException - if this method encountered difficulties
See Also:   TemplateServlet.initTemplateEngine(ServletConfig)



initTemplateEngine
protected TemplateEngine initTemplateEngine(ServletConfig config)(Code)
Creates the template engine. Called by TemplateServlet.init(ServletConfig) and returns just new groovy.text.SimpleTemplateEngine() if the init parameter template.engine is not set by the container configuration.
Parameters:
  config - Current serlvet configuration passed by the container. The underlying template engine or null on error.



service
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException(Code)
Services the request with a response.

First the request is parsed for the source file uri. If the specified file could not be found or can not be read an error message is sent as response.


Parameters:
  request - The http request.
Parameters:
  response - The http response.
throws:
  IOException - if an input or output error occurs while the servlet ishandling the HTTP request
throws:
  ServletException - if the HTTP request cannot be handled



setVariables
protected void setVariables(ServletBinding binding)(Code)
Override this method to set your variables to the Groovy binding.

All variables bound the binding are passed to the template source text, e.g. the HTML file, when the template is merged.

The binding provided by TemplateServlet does already include some default variables. As of this writing, they are (copied from groovy.servlet.ServletBinding ):

  • "request" : HttpServletRequest
  • "response" : HttpServletResponse
  • "context" : ServletContext
  • "application" : ServletContext
  • "session" : request.getSession(false)

And via implicite hard-coded keywords:

  • "out" : response.getWriter()
  • "sout" : response.getOutputStream()
  • "html" : new MarkupBuilder(response.getWriter())

Example binding all servlet context variables:


 class Mytlet extends TemplateServlet {
 protected void setVariables(ServletBinding binding) {
 // Bind a simple variable
 binding.setVariable("answer", new Long(42));
 // Bind all servlet context attributes...
 ServletContext context = (ServletContext) binding.getVariable("context");
 Enumeration enumeration = context.getAttributeNames();
 while (enumeration.hasMoreElements()) {
 String name = (String) enumeration.nextElement();
 binding.setVariable(name, context.getAttribute(name));
 }
 }
 }
 


Parameters:
  binding - to be modified



Fields inherited from groovy.servlet.AbstractHttpServlet
final public static String CONTENT_TYPE_TEXT_HTML(Code)(Java Doc)
final public static String INC_PATH_INFO(Code)(Java Doc)
final public static String INC_REQUEST_URI(Code)(Java Doc)
final public static String INC_SERVLET_PATH(Code)(Java Doc)
protected boolean reflection(Code)(Java Doc)
protected Matcher resourceNameMatcher(Code)(Java Doc)
protected boolean resourceNameReplaceAll(Code)(Java Doc)
protected String resourceNameReplacement(Code)(Java Doc)
protected ServletContext servletContext(Code)(Java Doc)
protected boolean verbose(Code)(Java Doc)

Methods inherited from groovy.servlet.AbstractHttpServlet
public URLConnection getResourceConnection(String name) throws ResourceException(Code)(Java Doc)
protected String getScriptUri(HttpServletRequest request)(Code)(Java Doc)
protected File getScriptUriAsFile(HttpServletRequest request)(Code)(Java Doc)
public void init(ServletConfig config) throws ServletException(Code)(Java Doc)

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