Java Groovlets和普通的Web项目集成

由于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代码可以互相调用

时间: 2024-12-31 01:03:28

Java Groovlets和普通的Web项目集成的相关文章

JAVA WEB项目集成海康SDK

问题描述 JAVA WEB项目集成海康SDK JAVA WEB项目中如何在JSP页面中回放.下载远程服务器上的海康的历史监控视频?哪位大侠有做过啊,最好能直接通过JS调用相关插件的方法就可以实现的,如果有示例代码就最好了,或者有已封装好的SDK也可以.跪谢.....注:是杭州海康威视的 解决方案 http://wenku.baidu.com/link?url=pWQbROcXrpDc6BJjugglypiHwzYfmc0a394gHE2okQUqUoL5FEPcXwkMg4cS2nlSi9uo7

java菜鸟:动态web项目 一用servlet就404

问题描述 java菜鸟:动态web项目 一用servlet就404 两个文件:web.xml和Test.java import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.

Maven管理的Spring Web项目集成JUnit单元测试

JUnit是一套优秀的单元测试框架,而Maven是优秀的Java项目构建和管理工具,两者结合可以很方便地对项目进行自动化测试. 一般的简单Java应用就不多说了,一些框架会提供针对junit的扩展,使得测试变得更容易,例如Spring官方就提供了spring-test,用于提供获取ApplicationContext等方面的支持. 首先要做的是,改变JUnit的实际执行类,将默认的执行类Suite替换为Spring提供的SpringJUnit4ClassRunner,也就是在测试类前面加上一个注

java-报表 Java项目集成 支持导出word和pdf

问题描述 报表 Java项目集成 支持导出word和pdf 烦请大家推荐一下报表的插件啊,现在急需统计相关的包边插件来实现 数据的图表展示, 并且支持图表的导出,导出的格式是excel.word.pdf. 需要与Java的web项目集成.看了网上很多推荐的插件,觉得一头雾水, 劳烦大家结合自己的实际使用,推荐一下,有相关的教程最好了,谢谢啦~~~ 解决方案 eclipse 里 有个报表插件 birt 解决方案二: poi,itext这俩jar包好用

Java Web项目中验证码功能的制作攻略_java

一.前言在表单页面中使用验证码的好处在于有效防止用户恶意提交表单,或者使用外挂非法攻击系统. 二.准备条件1.一个普通的web项目 webProject: 2.一个web服务器 Tomcat. 三.实现思路:1.自定义一个servlet  VerifyCodeServlet 画一个包含验证字符的验证码图片,这里的图片需要使用Graphics2D手动去画: 2.在具体页面使用img标签的src引用这个servlet即可显示servlet: 3.因为画图的时候把验证码信息放入了session,所以提

java-JAVA SSH开放的web项目 IE访问出现400错误

问题描述 JAVA SSH开放的web项目 IE访问出现400错误 用JAVA 开放的一套软件,基于SSH框架,Tomcat容器,服务器用的是Lniux 现在遇到问题,当客户端用IE使用系统的时候,IE会出现无法找到该网页,不局限于一个模块,多个模块在访问的时候都有遇到,但是不常出现,通过后台记录访问地址,访问地址贴到IE浏览器里面是可以正常使用的.请各位大神帮忙看看,IE版本 IE8 . 解决方案 400是服务器端的错误,但不能进一步明确是什么问题. 把日志代码贴出来.

maven的web项目发布(tomcat eclipse spring)

讨论一下项目发布的问题,因为我过去从没有认真发布过项目.做过php的项目,在server上直接用php版本的eclipse进行开发,php的环境是早就配置好的,mysql也是事先安装好,在开发调试的过程中,都是直接使用server上的php+mysql+apache的环境,不存在项目发布的问题:开发好也就相当于部署好了. 但是,眼前这个项目不一样:1.开发环境是虚拟机.生产环境是一台专门的server2.开发环境和运行环境都是java语言环境下,eclipse开发的maven项目,运行在tomc

配置-关于在Azure搭建一个完整的Java web项目的步骤并和azure各种服务集成

问题描述 关于在Azure搭建一个完整的Java web项目的步骤并和azure各种服务集成 如何把java web项目和azure提供的服务进行集成,有哪些配置?能不能提供教程 解决方案 最简单的当然是使用虚拟机服务,使用一个你熟悉的操作系统,比如ubuntu server.cent os或者windows server,然后用ssh.ps或者remote desktop登录进去.你原先怎么部署,现在还是怎么部署,一点都没有变化. 解决方案二: HiAzur官网提供了一些关于java开发的文档

eclipse上搭建maven多模块Java Web项目

1.模块化需求及项目模块说明 手头上有个已上线的系统,但因老板的特殊要求,系统需要不断的修改.还有就是公司市场部不定期地在举行一些微信活动,每一个活动都是周期性的,活动完了这个功能就要在系统中移除. 系统中就有三种模块:已经在系统中正常运行不需要再变更的模块.经常性变更的模块.用完就要移除的活动模块. 所以,我们需要把项目分成了下面几个模块. 简单说明一下: timetable-common是常用工具包存放的模块. wechat-api是微信接口模块,此模块用到了timetable-common