如何构建java Web应用程序

Syl*_*ain 5 java orm user-interface frameworks

很快,我将不得不为一家公司启动一个Web项目,现在我需要选择一种技术来构建应用程序.我正在考虑使用Java,因此我想找到一个框架来帮助我构建应用程序(我已经习惯了PHP框架,如CakePHP和CodeIgniter).

我不明白的是,似乎存在许多没有相同目标的框架和技术.行动框架,组件框架......我可以用另一个不能做的事情做什么?似乎应该通过混合许多不同的技术来开发java Web应用程序,因此我有点迷失...我已经看过不同的java框架,例如JSF,Stripes,Struts2,Tapestry,Wicket和弹簧.关于后者,我不安静地看看这个框架的不同部分是什么,它能为我做什么以及它不能做什么.我可以从Spring获取什么以及我不需要什么...

因此:构建java Web应用程序需要什么?

我已经将JSF用于基本的CRUD应用程序,但我正在尝试找到更适合我需要的东西.我们必须构建的应用程序既可以是社区平台,也可以是商家网站,并提供合理的数据保护:)

关于ORM,我想我会选择Hibernate ...我也听说过Maven或者Ant,他们会以什么方式帮助我?

任何建议/指南将不胜感激:-)在此先感谢.

编辑:我的需求是:一个ja​​va框架:

  • 记录良好/易于获得帮助/尽可能简单...
  • java越多越好
  • Ajax友好/ Facility构建漂亮的UI ...
  • 国际化
  • 仍然是学生,技能的可销售性可能很重要......

要构建的应用程序都是一个

  • 社区网站:web 2.0,CRUD
  • 电子商务网站

完整的规格尚未完成.

kgr*_*rad 9

这是一个非常难以回答的问题,最近我一直在你的情况下尝试给出一些见解.基本上,使用Java,框架有很多选择,没有人能真正告诉你哪一个最适合你,我们能做的就是给你一些技术细分.

以下是我在寻找您想要的相同答案时遇到的情况.

Java有许多技术试图提供全栈解决方案.这些技术可以分解为其他技术,但在一起使用时效果很好.

基本上,Web应用程序,表示,业务和数据层有3层.表示层是前端,用户看到的内容.您通常可以混合和匹配这三个层的技术.例如,您可以使用带有IOC和Hibernate的Spring框架的条带前端作为您的ORM.

您可以将许多出色的技术用于表示层,包括Spring-MVC,ST​​RUTS,Stripes,Wicket,JSF/SEAM和Tapestry等.其中大多数使用JSTL为视图使用JSP,但wicket除外,它实际上通过使用Java"组件"(POJOS)将html与逻辑完全分开.两种方法都有利有弊.wicket方法的好处是你有静态的类型检查和html的完全分离,所以你可以把它交给你的设计师.

对于业务层,人们通常使用某种控制反转框架(IOC)进行依赖注入(DI).IOC的流行框架是Spring和Seam,它们具有Spring-security等相关技术,并且通常受其他技术的支持.Google Guice似乎很受直接DI框架的欢迎.

最后,对于数据层,大多数人倾向于使用Hibernate或JPA.还有其他人,但我没有经验,也无法提供更多信息.

Tapestry是另一个框架,它试图从我理解的方式成为一个完整的堆栈,并采用类似wicket(或者我猜Wicket采用类似挂毯)的方法.Grails是另一个使用Groovy并构建在Spring和Hibernate之上的全栈框架.如果你喜欢Rails,Grails非常好.

这些技术中的大多数都有很多可用的信息和非常活跃的邮件列表/ IRC聊天室.你需要做的是看看它们,然后决定哪种方法适合你.这里没有人能告诉你你想要什么.

如果你想要一个推荐,我想有一天使用Wicket/Guice/Hibernate堆栈.