快速业务通道

在Google App Engine中使用Struts2框架 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-25

在Google App Engine中使用Struts2框架

时间:2009-11-09 javaeye yongpei

"GAE"(Google App Engine)在早些时候发布了Java语言的支持,对广大的Java开发者来说,可以使用自己熟悉的语法来进行开发,是很舒服的一件事情。Java世界中有大量已有的工具和框架,有一些是我们日常工作中就已经熟练使用的、而且广为流行的成熟的,如果能够直接在GAE中使用,将大大提高我们的开发效率。

这几天利用Struts2,在GAE的Java版本支持环境中,写了个简单博客,现在将GAE+Struts2的组合经验,记录下来。

背景介绍

Python是一门有趣的语言,是作者第二个接触的动态脚本语言。第一个是大学时期做学生网站时期接触到Perl,后来工作后利用Perl改写了公司的应用程序启动框架;几年后,由于Perl的语法实在是太过于羞涩难懂,便使用Python对启动框架进行了一次升级。Python是面向对象的,同时也兼备了函数式编程的支持,另外,Python的语法强制缩进,非常容易读懂,因此Python版本的启动框架对公司的Java开发者来说,也不难维护。

当然,这些都是题外话,GAE最先提供的是Python语言的支持,但是对我们Java开发者来说,要使用Python来进行大的应用开发,还比较痛苦的一件事情。这时候GAE推出Java语言的支持,既是所有Java开发人员的福音,也是理所当然的一件事情,Google不可能放弃目前企业应用开发领域里面最大的一股力量。

Struts2是目前应用最广泛的WEB开发框架,也是大部分的Java开发者最熟悉的开发框架,我们的GAE应用程序中,使用成熟的Struts2可以减少很多额外的开发工作。

所需的Struts的库文件

目前Struts2的稳定版本是2.1.6,将下面的来自Struts-2.1.6的发行包的几个包,引入你的GAE项目工程中:

commons-fileupload-1.2.1.jar

commons-io-1.3.2.jar

commons-logging-1.0.4.jar

commons-logging-api-1.1.jar

freemarker-2.3.13.jar

ognl-2.6.11.jar

struts2-core-2.1.6.jar

xwork-2.1.2.jar

如果你使用IDEA来创建项目,只要选择Struts的2.1.6版本的支持,IDEA会自动帮你引入所需要的库文件。

为App Engine定制你的Struts

GAE里面的Servlet环境有一定的限制,不能使用线程(Thread),不能使用文件,还有别的一些要注意的地方。

首先,要加一个ServletContextListener的实现,在context初始化的时候,调用OgnlRuntime.setSecurityManager(null),让Struts可以在GAE环境里面正常跑起来:

package your.servlet.pkg; import ognl.OgnlRuntime; import javax.servlet.ServletContextListener; import javax.servlet.ServletContextEvent; public class StrutsAppEngineAdapter implements ServletContextListener {   public void contextInitialized(ServletContextEvent servletContextEvent) {     OgnlRuntime.setSecurityManager(null);   }   public void contextDestroyed(ServletContextEvent servletContextEvent) {   } }

在web.xml中配置这个ServletContextListener的实例:

<web-app>  <listener>   <listener-class>your.servlet.pkg.StrutsAppEngineAdapter</listener-class>  </listener> </web-app>

做完上面的工作之后,就可以在你的GAE里面使用Struts的功能了!

在Google App Engine中使用Struts2框架(2)

时间:2009-11-09 javaeye yongpei

定制GAE的常用对象的Converter

Struts提供了Converter的机制,让你常用的业务对象可以直接在页面中显示,或者接受类型为业务对象的请求数据。GAE里面常用的一些对象,定义了对应的Converter之后,可以是业务代码更加简洁。下面介绍两个常用对象的Converter的代码:

T

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号