开发者社区> 狗尾巴呢> 正文

Java Groovlets和普通的Web项目集成

简介: 由于Groovy动态语言的方便性,如果想在普通的web项目中集成有两个选择 使用基于groovy的Grails框架,非常的方便,适用于新建的项目 使用groovy本身集成,适用已有项目的维护(毕竟按照grails的约定升级一个项目对于大的项目还是有很多的工作量的) 下文把实际涉及的一个项目维护使用groovy的过程总结一下: 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代码可以互相调用

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【JavaWeb】手把手教你Eclipse、IDEA集成Tomcat构建Web应用(三)
【JavaWeb】手把手教你Eclipse、IDEA集成Tomcat构建Web应用(三)
17 0
【JavaWeb】手把手教你Eclipse、IDEA集成Tomcat构建Web应用(一)
【JavaWeb】手把手教你Eclipse、IDEA集成Tomcat构建Web应用(一)
16 0
Python web框架 之Django + Python3.7 + 集成百度地图【视频讲解】
python集成百度地图 介绍 python集成百度地图demo
115 0
珠联壁合地设天造|M1 Mac os(Apple Silicon)基于vscode(arm64)配置搭建Java开发环境(集成web框架Springboot)
也许有人从未听说过Python,但是不会有人没听说过Java,它作为一个拥有悠久历史的老牌编程语言,常年雄踞TIOBE编程语言榜首,其顶尖的霸主地位不可撼动,而M1 mac业已发布了一段时间,作为跨时代的顶级芯片系统,这两大巨头能否珠联璧合,让开发者们猛虎添翼、更上层楼?本次我们尝试在M1 mac系统中搭建Java开发环境,并且集成目前Web开发领域红的发紫的Springboot框架,另外,谁说玩儿Java就必须得用Eclipse或者IntelliJ IDEA?我们就骄傲地使用Vscode。
232 0
一键安装java web环境打包集成,集成tomcat,mysql,jdk,java ,加上客户端cefpython,实现桌面web应用。
一键安装java web环境打包集成,集成tomcat,mysql,jdk,java ,加上客户端cefpython,实现桌面web应用。
73 0
Shiro框架学习笔记(三)与web集成之后进行简单的身份验证
Shiro框架学习笔记(三)与web集成之后进行简单的身份验证
59 0
告别shiro-cas单点登录集成库,这款简单且强壮的Java Web安全引擎pac4j你值得拥有
告别shiro-cas单点登录集成库,这款简单且强壮的Java Web安全引擎pac4j你值得拥有
222 0
Spring集成Web环境
Spring集成Web环境
68 0
+关注
狗尾巴呢
从事研发20年 涉及桌面软件、嵌入式设备、C/S分层系统、B/S业务系统、互联网系统等等各类系统 语言涉及C/C++ .net系统 java系列 前端系列等等不同的类别 主控和主导了国家863项目,企业业务应用系统,自然语言翻译系统,数据库审计等系列的软件研发
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
PWA:移动Web的现在与未来
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关实验场景
更多