<p><span style="font-size: medium;"><strong>Groovlet介绍</strong></span></p>
<p><span style="font-size: medium;"><strong></strong></span></p>
<p></p>
<p>1、Groovlet是以Servlet API为基础建立起来的框架</p>
<p>2、Groovlet与GSP框架提供一种优雅而简单的平台,将它用于构建复杂程度不高的Web应用程序。</p>
<p>3、Groovlet不需要继承HttpSevlet,甚至连类都可以不需要写</p>
<p>4、Groovlet不需要实现doGet(),doPost()等发放</p>
<p>5、Groovlet实际上时直接使用Servlet API替代品</p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>第一个Groovlet</strong></span></p>
<p><span style="font-size: medium;"><strong></strong></span></p>
<p></p>
<p>1、文件名及路径:GSPToysStore/WebRoot/groovy/hello.groovy</p>
<p></p>
<p> printl """</p>
<p> <html></p>
<p><head><title>Hello Groovlet!!</title></head></p>
<p><body></p>
<p> <h2>Hello Groovy!! </h2></p>
<p> </body></p>
<p></html></p>
<p> """</p>
<p>2、访问Groovlet的html页面</p>
<p> <html></p>
<p> <head></p>
<p><meta http-equiv="Content-Type" content="text/html;charset=uft-8"></p>
<p><title>Say Hello!</title></p>
<p></head></p>
<p><body></p>
<p> <a href = "groovy/hello.groovy">Say Hello!</a></p>
<p></body></p>
<p></html></p>
<p></p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>环境准备(MyEclipse)</strong></span></p>
<p><span style="font-size: medium;"><strong></strong></span></p>
<p></p>
<p>1、加入.gsp的Content Type方法:</p>
<p> Window -->Preferences --> General -->Content Types --> Text -->JSP -->Add</p>
<p>2、设置默认gsp文件打开的编辑器的方法:</p>
<p>Window -->Preferences -->General -->Editors -->FileAssociations --> Add --> *.gsp -->选择编辑器-->Default</p>
<p>3、把asm-2.1.jar , groovy-1.0-jsr-04.jar, antlr-2.7.5.jar, MySQL驱动等jar包拷贝到项目lib目录,加入构建路径。</p>
<p>4、*.groovy(Groolet)与jsp/gsp放在一起</p>
<p>5、修改web.xml</p>
<p><textarea cols="50" rows="15" name="code" class="xhtml:collapse"><servlet>
<servlet-name>GroovyServlet</servlet-name>
<servlet-class>groovy.select.GroovyServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>GroovyTemplate</servlet-name>
<servlet-class>groovy.servlet.TemplateServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>GroovyServlet</servlet-name>
<url-pattern>*.groovy</url-pattern>
</servlet-mappint>
<servlet-mapping>
<servlet-name>GroovyTemplate</servlet-name>
<url-pattern>*.gsp</url-pattern>
</servlet-mappint></textarea></p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>Groovlet 可以使用的隐含对象</strong></span></p>
<p><span style="font-size: medium;"><strong></strong></span></p>
<p></p>
<p><span style="color: #0000ff;">隐含对象</span> <span style="color: #0000ff;">绑定到</span></p>
<p></p>
<p>request ServletRequest</p>
<p>responseServletResponse</p>
<p>contextServletContext</p>
<p>application ServletContext</p>
<p>sessionrequest.getSession(true)</p>
<p>out response.getWriter()</p>
<p>sout response.getOutputStream() // 输出流对象</p>
<p>htmlnew MarkupBuilder(out) // 就是生成器</p>
<p></p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>用print生成html页面</strong></span></p>
<p><span style="font-size: medium;"><strong></strong></span></p>
<p></p>
<p>1、def name = <span style="color: #0000ff;">request</span>.getParameter("toyName")</p>
<p> def price = <span style="color: #0000ff;">request</span>.getParameter("unitPrice")</p>
<p> // 数据库操作</p>
<p> print """</p>
<p><html></p>
<p> <head><title>Success add toy!</title></head></p>
<p> <body></p>
<p> <h1>Success add toy!</h1></p>
<p> Toy Name: ${<span style="color: #339966;">name</span>}<br/></p>
<p>Unit Price: ${<span style="color: #339966;">price</span>}<br/></p>
<p> <a href = "/GSPToysStore/index.gsp">Home</a></p>
<p> </body></p>
<p></html></p>
<p> """</p>
<p></p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>使用构造器生成HTML内容</strong></span></p>
<p></p>
<p></p>
<p>1、html是隐含对象</p>
<p>2、sql.eachRow是Sql类的方法,需要闭包作为参数</p>
<p>3、</p>
<p>html.html(){</p>
<p> head(){title("All Toys List!")}</p>
<p> body(){</p>
<p> h1("All Toys List!")</p>
<p> table(border:"1"){</p>
<p> sql.eachRow("select * from toys"){ toy-></p>
<p>html.tr(){</p>
<p>td("${toy.toyName}")</p>
<p>td("${toy.unitPrice}")</p>
<p>} </p>
<p> }</p>
<p>}</p>
<p> }</p>
<p>}</p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>GSP介绍</strong></span></p>
<p></p>
<p>1、GSP功能比JSP还要多</p>
<p>2、GSP框架是模板引擎,GSP实质上是一个模板</p>
<p>3、GSP集中MVC中的View部分</p>
<p>4、Groovlet集中于控制与业务逻辑</p>
<p>5、当所需功能简单并且需要尽快完成时,Groovlet和GSP是进行服务器端开发的首选。</p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>第一个GSP页面hello.gsp</strong></span></p>
<p></p>
<p><%@page pageEncoding="utf-8"%></p>
<p><html></p>
<p><head></p>
<p> <title>Hello GSP! </title></p>
<p></head></p>
<p><body></p>
<p> <% println "Hello${request.getParameter("<span style="color: #3366ff;">userName</span>")}"%></p>
<p></body></p>
<p></html></p>
<p></p>
<p>访问: <a href="http://localhost:9090/GSPToysStore/hello.gsp?userName=clat">http://localhost:9090/GSPToysStore/hello.gsp?userName=clat</a></p>
<p></p>
<p></p>
<p><strong>可以学习Grails,Grails可以敏捷开发Web程序。</strong></p>
<p><span style="font-size: medium;"><strong></strong></span></p>
<p></p>
<p>1、Groovlet是以Servlet API为基础建立起来的框架</p>
<p>2、Groovlet与GSP框架提供一种优雅而简单的平台,将它用于构建复杂程度不高的Web应用程序。</p>
<p>3、Groovlet不需要继承HttpSevlet,甚至连类都可以不需要写</p>
<p>4、Groovlet不需要实现doGet(),doPost()等发放</p>
<p>5、Groovlet实际上时直接使用Servlet API替代品</p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>第一个Groovlet</strong></span></p>
<p><span style="font-size: medium;"><strong></strong></span></p>
<p></p>
<p>1、文件名及路径:GSPToysStore/WebRoot/groovy/hello.groovy</p>
<p></p>
<p> printl """</p>
<p> <html></p>
<p><head><title>Hello Groovlet!!</title></head></p>
<p><body></p>
<p> <h2>Hello Groovy!! </h2></p>
<p> </body></p>
<p></html></p>
<p> """</p>
<p>2、访问Groovlet的html页面</p>
<p> <html></p>
<p> <head></p>
<p><meta http-equiv="Content-Type" content="text/html;charset=uft-8"></p>
<p><title>Say Hello!</title></p>
<p></head></p>
<p><body></p>
<p> <a href = "groovy/hello.groovy">Say Hello!</a></p>
<p></body></p>
<p></html></p>
<p></p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>环境准备(MyEclipse)</strong></span></p>
<p><span style="font-size: medium;"><strong></strong></span></p>
<p></p>
<p>1、加入.gsp的Content Type方法:</p>
<p> Window -->Preferences --> General -->Content Types --> Text -->JSP -->Add</p>
<p>2、设置默认gsp文件打开的编辑器的方法:</p>
<p>Window -->Preferences -->General -->Editors -->FileAssociations --> Add --> *.gsp -->选择编辑器-->Default</p>
<p>3、把asm-2.1.jar , groovy-1.0-jsr-04.jar, antlr-2.7.5.jar, MySQL驱动等jar包拷贝到项目lib目录,加入构建路径。</p>
<p>4、*.groovy(Groolet)与jsp/gsp放在一起</p>
<p>5、修改web.xml</p>
<p><textarea cols="50" rows="15" name="code" class="xhtml:collapse"><servlet>
<servlet-name>GroovyServlet</servlet-name>
<servlet-class>groovy.select.GroovyServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>GroovyTemplate</servlet-name>
<servlet-class>groovy.servlet.TemplateServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>GroovyServlet</servlet-name>
<url-pattern>*.groovy</url-pattern>
</servlet-mappint>
<servlet-mapping>
<servlet-name>GroovyTemplate</servlet-name>
<url-pattern>*.gsp</url-pattern>
</servlet-mappint></textarea></p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>Groovlet 可以使用的隐含对象</strong></span></p>
<p><span style="font-size: medium;"><strong></strong></span></p>
<p></p>
<p><span style="color: #0000ff;">隐含对象</span> <span style="color: #0000ff;">绑定到</span></p>
<p></p>
<p>request ServletRequest</p>
<p>responseServletResponse</p>
<p>contextServletContext</p>
<p>application ServletContext</p>
<p>sessionrequest.getSession(true)</p>
<p>out response.getWriter()</p>
<p>sout response.getOutputStream() // 输出流对象</p>
<p>htmlnew MarkupBuilder(out) // 就是生成器</p>
<p></p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>用print生成html页面</strong></span></p>
<p><span style="font-size: medium;"><strong></strong></span></p>
<p></p>
<p>1、def name = <span style="color: #0000ff;">request</span>.getParameter("toyName")</p>
<p> def price = <span style="color: #0000ff;">request</span>.getParameter("unitPrice")</p>
<p> // 数据库操作</p>
<p> print """</p>
<p><html></p>
<p> <head><title>Success add toy!</title></head></p>
<p> <body></p>
<p> <h1>Success add toy!</h1></p>
<p> Toy Name: ${<span style="color: #339966;">name</span>}<br/></p>
<p>Unit Price: ${<span style="color: #339966;">price</span>}<br/></p>
<p> <a href = "/GSPToysStore/index.gsp">Home</a></p>
<p> </body></p>
<p></html></p>
<p> """</p>
<p></p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>使用构造器生成HTML内容</strong></span></p>
<p></p>
<p></p>
<p>1、html是隐含对象</p>
<p>2、sql.eachRow是Sql类的方法,需要闭包作为参数</p>
<p>3、</p>
<p>html.html(){</p>
<p> head(){title("All Toys List!")}</p>
<p> body(){</p>
<p> h1("All Toys List!")</p>
<p> table(border:"1"){</p>
<p> sql.eachRow("select * from toys"){ toy-></p>
<p>html.tr(){</p>
<p>td("${toy.toyName}")</p>
<p>td("${toy.unitPrice}")</p>
<p>} </p>
<p> }</p>
<p>}</p>
<p> }</p>
<p>}</p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>GSP介绍</strong></span></p>
<p></p>
<p>1、GSP功能比JSP还要多</p>
<p>2、GSP框架是模板引擎,GSP实质上是一个模板</p>
<p>3、GSP集中MVC中的View部分</p>
<p>4、Groovlet集中于控制与业务逻辑</p>
<p>5、当所需功能简单并且需要尽快完成时,Groovlet和GSP是进行服务器端开发的首选。</p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>第一个GSP页面hello.gsp</strong></span></p>
<p></p>
<p><%@page pageEncoding="utf-8"%></p>
<p><html></p>
<p><head></p>
<p> <title>Hello GSP! </title></p>
<p></head></p>
<p><body></p>
<p> <% println "Hello${request.getParameter("<span style="color: #3366ff;">userName</span>")}"%></p>
<p></body></p>
<p></html></p>
<p></p>
<p>访问: <a href="http://localhost:9090/GSPToysStore/hello.gsp?userName=clat">http://localhost:9090/GSPToysStore/hello.gsp?userName=clat</a></p>
<p></p>
<p></p>
<p><strong>可以学习Grails,Grails可以敏捷开发Web程序。</strong></p>