概述
由于Groovy动态语言的方便性,如果想在普通的web项目中集成有两个选择
使用基于groovy的Grails框架,非常的方便,适用于新建的项目
使用groovy本身集成,适用已有项目的维护(毕竟按照grails的约定升级一个项目对于大的项目还是有很多的工作量的)
下文把实际涉及的一个项目维护使用groovy的过程总结一下:
Web.xml配置:加入groovy响应的servlet
<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-all-1.7.10.jar groovy的所有依赖项
mysql-connector-java-5.0.7-bin.jar:mysql的驱动,数据库项目使用
例子
以下是使用sql和数据绑定等的简单实例
importgroovy.sql.Sql
if(!session)
{
session = request.getSession(true)
}
if(!session.Counter)
{
session.Counter =1
}
/*DROP TABLE IF EXISTS `demo`.`text_search`;
CREATE TABLE `demo`.`text_search` (
`id` bigint(20) NOT NULL auto_increment,
`version` bigint(20) NOT NULL,
`description` varchar(255) NOT NULL,
`username` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
*/
defdb = groovy.sql.Sql.newInstance('jdbc:mysql://localhost:3306/demo','root', '', 'com.mysql.jdbc.Driver')
def name = params.guess
defdesc = "descdd"
try
{
db.execute("insert into text_search (version,username, description) values(1, ${name} , ${desc})")
}catch(exception)
{
println '已经存在'
}
html.html{
head{
title("Groovy Demo")
}
body{
p("${request.remoteHost}::: ${session.Counter}")
h1 'Variables in the Binding:'
table(summary:'binding') {
tbody {
binding.variables.each{ key, value ->
tr {
tdkey.toString()
td(value ? value.toString() : 'null')
}
}
}
}
hr()
db.eachRow("select * from text_search"){
println it.id
printlnit.username
hr()
}
}
}
session.Counter= session.Counter + 1
使用http://localhost:8084/demo/hello.groovy?guess=demo访问即可写入数据,读取内容
相关的信息参考
名称 | 备注(Servlet中的对应) | 实例用法 |
headers | Map类型 HTTP request headers | headers.host |
params | Map类型 HTTP request parameters | params.myParam
|
session | ServletSession, can be null | session?.myParam |
request | HttpServletRequest | request.remoteHost |
response | HttpServletResponse | response.contentType=’text/xml’ |
context | ServletContext | context.myParam |
application | ServletContext (同 context) | application.myParam |
out | response.writer | 延迟初始化,第一次使用时初始化 |
sout | response.outputStream | 延迟初始化,第一次使用时初始化 |
html | Builderinitialized as new MarkupBuilder(out) | 延迟初始化,第一次使用时初始化 |
TemplatingGroovlets
如果想处理更服务的页面,可以使用模板,具体参考文档
总结
对于java不是很熟的人员(如.net人员)维护已有的java web项目,使用groovy可以比较快速的跟进,同时由于groovy语法的简便性和集成性,对于普通的xml文件处理、数据处理等可以使用较少的简洁的代码实现
Groovy的sample比较系统统一,查找方便
和已有的java代码可以互相调用
最后
以上就是缥缈白昼为你收集整理的Java Groovlets和普通的Web项目集成的全部内容,希望文章能够帮你解决Java Groovlets和普通的Web项目集成所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复