加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Groovy学习笔记-Groovlets

发布时间:2020-12-14 17:03:02 所属栏目:大数据 来源:网络整理
导读:你能够使用 Groovy( 例如: Groovlets) 写一个正常的 Java servlets。 这里还有一个 GroovyServlet 。 ? 此功能会自动编译你的. groovy 源文件,把它们变成字节码,加载类并且缓存它,直到你改变源文件。 下面是一个简单的例子来说明你 通过 Groovlet 可以

你能够使用Groovy( 例如:Groovlets) 写一个正常的Java servlets。

这里还有一个 GroovyServlet 。

?

此功能会自动编译你的.groovy 源文件,把它们变成字节码,加载类并且缓存它,直到你改变源文件。

下面是一个简单的例子来说明你通过 Groovlet 可以做的事情

请注意隐含变量访问 session,output request 的用法。 还要注意,这更像是一个脚本 ,因为它没有一个类的包装。

	if (!session) {

	  session = request.getSession(true);

	}
	if (!session.counter) {

	  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
做同样的事情:

??????? if (!session) {

	  session = request.getSession(true)

	}
	if (!session.counter) {

	      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



隐含变量

?

下面的变量是已经准备好在groovlets 中使用的:

变量名

绑定到

request

ServletRequest

?

response

ServletResponse

?

context

ServletContext

unlike Struts

application

session

getSession(false)

can be null! see

A

params

?

a Map object

headers

?

out

response.getWriter()

see

B

sout

response.getOutputStream()

html

new MarkupBuilder(out)

see

B

?

A 如果已经有一个 session 对象, session 变量只能设置。 参见上面的例子 中“ if(session== NULL)” 的检查。

B 这些变量不能在 Groovlet 内重新分配。 他们在第一次访问时绑定, allowing to e.g. calling methods on the 'response' object before using 'out'.

?

设置Groovlets

如下内容放在你的web.xml 中:

 	<servlet>


		<servlet-name>Groovy</servlet-name>

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

	</servlet>

	<servlet-mapping>

		<url-pattern>*.groovy</url-pattern>

	</servlet-mapping>


所有的 Groovy jar 文件放到 WEB-INF/lib 目录下面。 您应该只需要 groovy.jar、antlr.jar asm.jar。 或复制 groovy-all-xyz.jar WEB-INF/lib 目录中。

?

现在把.groovy 文件放在根目录(即你存放HTML 文件的地方)。 Groovy servlet 需要编译.groovy 文件。

因此,对于使用Tomcat ,你可以像这样修改tomcat/conf/server.xml :

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



然后访问它http://localhost:8080/groovy/hello.groovy





 





(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读