Groovlets

Groovlets

你能在Groovy里面写普通的Java Servlet。
存在一个GroovyServlet,自动编译.groovy文件,转变成字节码,装载类,并缓存它们,直到修改了源文件。
这儿有一个简单的例子来向你说明这事:
(注意访问session,output,request的隐式变量的用法)

import java.util.Date

if  (session.counter  ==   null {
  session.counter 
= 1
}


println 
"""
< html >
    
< head >
        
< title > Groovy Servlet </ title >
    
</ head >
    
< body >
Hello, $
{request.remoteHost} : $ {session.counter} !  $ {new Date()}
    
</ body >
</ html >
"""
session.counter  =  session.counter  +   1
或者,用MarkupBuilder完成相同的功能
import java.util.Date
import groovy.xml.MarkupBuilder

if  (session.counter  ==   null {
      session.counter 
= 1
}


html.html 
{    // html is implicitly bound to new MarkupBuilder(out)
  head {
      title(
"Groovy Servlet")
  }

  body 
{
    p(
"Hello, ${request.remoteHost}: ${session.counter}! ${new Date()}")
  }

}

session.counter 
=  session.counter  +   1

隐式变量

o_implicit variables.jpg

* 这些变量在groovylet里面不能被再次赋值。他们在第一次访问时被绑定,允许诸如在用"out"之前调用对象"response"的方法。

建立Groovylet

将下面放入web.xml中

<servlet>
<servlet-name>Groovy</servlet-name>
<servlet-class>groovy.servlet.GroovyServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>Groovy</servlet-name>
<url-pattern>*.groovy</url-pattern>
</servlet-mapping>

然后,所有groovy jar文件放到WEB/lib目录下(只需放入groovy.jar和asm.jar即可)

把.groovy文件放入根目录(放html文件的地方)中,groovy servlet将会照管这些.groovy文件

就这个例子使用tomcat来说,要编辑tomcat/conf/server.xml ,类似于下面这样

<Context path="/groovy" docBase="c:/groovy-servlet"/>


你可能感兴趣的:(Groovlets)