java ts_Java Groovlets和普通的Web项目集成

由于Groovy动态语言的方便性,如果想在普通的web项目中集成有两个选择

使用基于groovy的Grails框架,非常的方便,适用于新建的项目

使用groovy本身集成,适用已有项目的维护(毕竟按照grails的约定升级一个项目对于大的项目还是有很多的工作量的)

下文把实际涉及的一个项目维护使用groovy的过程总结一下:

Web.xml配置:加入groovy响应的servlet

Groovy

groovy.servlet.GroovyServlet

Groovy

*.groovy

加入依赖库

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

相关的信息参考

名称

备注(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代码可以互相调用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值