哪个java web框架要学习?

我对学习java web开发框架很感兴趣,我正在寻找一些我应该学习的建议/建议(以及为什么)。

理想情况下,我希望框架:

  1. 以MVC为基础。
  2. 有任何配置的最小化
  3. 有一个易于使用的ORM
  4. 有良好的会话管理
  5. 容易拾取

我熟悉pylons和django所以如果有一个类似于其中任何一个的java框架那么我会对它特别感兴趣。

谢谢。


结论:

首先,我要感谢那些花时间分享他们见解的人。 在过去的几周里,我尝试了Spring MVC,Wicket和Stripes。 最终,我选择Stripes的原因是“Civil Disededient”描述的所有原因; 令人惊讶的是,他的一个陈述并不是双曲线。 结合Stripes,我正在使用JPA / Hibernate。 与Struts2,JSF等相比,我所关注的一个问题是Stripes社区似乎相对“小”。虽然它可能相对较小,但社区非常容易接触,友好且乐于助人。

最后,虽然我没有尝试过Grails,但我确实对它进行了调查,看起来很有趣/很有希望。 从我看到的,Groovy语法看起来非常类似于python(因为我熟悉w / python,这将使我更容易学习)和Grails框架本身似乎是一个可与Rails,Django相媲美的RAD框架/挂架。 我当然打算进一步研究和(在不久的将来)最终学习groovy / grails。

Stripes毫无疑问是我曾经乐于使用的最好和最简单的java框架。 要解决您的每个要求:

以MVC为基础。

MVC在旁观者眼中是至关重要的 – 至少,这在很大程度上取决于您如何设计代码结构。 但是,使用Stripes的MVC项目结构非常简单。

有任何配置的最小化

这是条纹闪耀的地方。 要启动并运行,只需在web.xml中添加几行即可。 其他一切都是自动连线的。 Stripes的美妙之处在于,如果您愿意,一切都可以轻松覆盖。

有一个易于使用的ORM

Stripernate是框架的流行扩展,同样可以自动运行。

有良好的会话管理

就像场上的@Session注释一样简单。 或者,如果需要,您可以在会话中保留整个ActionBean。 Stripes内置了对Wizards的支持,因此您不必担心跨请求保留状态。

容易拾取

这是Stripes最强的套装。 更不用说, Wiki的记录非常好。

此外,Stripes内置了对布局模板 , 本地化 , AJAX和其他一些东西的支持。 与一些需要数十个巨大的JAR( 咳嗽…… Tapestry )的框架不同,整个框架是一个重量不到500 KB的JAR。

Grails很可能就是你想要的。 它运行在Groovy (一种更流行的基于JVM的语言)上。

它使用按惯例编码的方法,所以几乎没有配置。

它是基于MVC的并且有自己的ORM(称为GORM ),但您可以插入Hibernate(可能是最流行的Java ORM)。

祝你好运。 你问过的问题大致类似于“我想要一个用鸡肉做的烤烤牛肉三明治”。 Java中可用的框架在配置上往往很重,而且有点难以学习。

那就是说,这是我的建议:

  1. 基于MVC – Spring MVC或JSF,这两者都不是特别容易学习。 我没有使用任何其他MVC Web框架(Wicket,Tapestry等),所以其他人可能不得不在这里权衡。
  2. 最小配置 – 最好的选择是带注释的Spring MVC。 但这是Java – 配置地狱是游戏的名称。
  3. 易于使用的ORM – 我不确定你在其他语言中习惯了什么,但在Java ORM中并没有被纳入MVC框架。 对于易于使用的ORM而言,最好的选择是在Hibernate之上使用JPA,特别是如果你为MyEclipse支付60美元。 MyEclipse中的JPA实现仅仅值得投资。 它并不完美,比我见过的任何东西都要好。
  4. 有体面的会话管理 – 随便挑选。 自90年代末以来,J2EE容器一直在管理比您可能需要的更多的会话。
  5. 易于取货 – 没有想到的东西。 就像Java作为一种语言一样简单,与之相关的网络工具往往是粗暴的新手。 学习JSP并远离JSF,因为它有一个古怪的生命周期,往往会隐藏你真正想知道的错误。

祝你好运!

编辑:我从来没有使用过Grails,但是我必须同意Brian和Nathan说它看起来最适合你想要的东西。

看看http://www.playframework.org /。

我最喜欢的是条纹框架。 http://www.stripesframework.org。 非常简单灵活。 抱歉没有注意到orm组件。 你需要一个单独的ORM,比如hibernate。

但是,grails确实包含了您的整个列表。

你可以试试Wicket和挂毯。 这些是更有能力的框架。 两者都建立在不同的想法上。

我相信Spring Web MVC将满足您的要求。

关于Page的spring

既然你说你想要一个“Java”Web框架,我建议使用Wicket,GWT或RAP。

Wicket是一个非常简单的“裸机”框架,其中所有逻辑都是Java(而不是像Struts,JSF或其他类似框架那样在Java和JSP之间拆分)。 它也是面向组件的,这意味着您可以在不同的页面中重用相同的GUI组件(简单或复合)。 最后,Wicket允许使用AJAX,同时仍然不需要用Javascript编写整个页面(例如,extjs需要)

GWT和RAP都是“java到javascript编译器”。 您使用常规Java编写代码,包括客户端上的交互逻辑(响应点击,拖动等),框架将代码编译为在客户端上运行的javascript,并在需要时与服务器交互。 GWT(来自谷歌)基于swing模型,而RAP(来自eclipse)基于Eclipse的RCP模型(比摇摆更丰富)。

Wicket和GWT / RAP之间的主要区别在于wicket更倾向于编写“旧学校”站点(例如,stackoverflow是旧学校 – 页面,表单,带有一点ajax),而GWT / RAP用于编写RIA应用程序(其中有许多具有复杂交互的小部件)。

最后,对于“开箱即用”的替代方案,请查看extjs,cappucino以及java web start

你可以尝试Tapestry 5 。 它是一个MVC,基于组件的Web框架,几乎没有配置(约定优于配置,类似Ruby on Rails)。 例如,它比JSF更容易学习(JSF是另一个基于组件的框架)。

Tapestry 5具有许多开箱即用的组件,并且与Hibernate(ORM)和Struts(中间件)轻松而干净地集成。 哦,实时重装function令人印象深刻。

哈姆雷特怎么样?

Hamlets(以前称为基于IBM Servlet的内容创建框架)是一个开源系统,用于生成由RenéPawlitzek在IBM开发的动态网页。 Hamlet是一个servlet扩展,它使用SAX(Simple API for XML)读取包含演示文稿的XHTML模板文件,并动态地将内容添加到模板中使用一小组回调函数标记特殊标记和ID的位置。 。 模板编译器可用于加速Hamlets。

Hamlets提供易于使用,易于理解,轻量级,占用空间小,基于servlet的内容创建框架,有助于开发基于Web的应用程序。 Hamlets框架不仅支持而且还强制完全分离内容和表示。 这是彻底的软件简化工作的结果。

我强烈推荐使用ZK。 我已经将它用于许多项目,并发现它非常高效和可靠。 它不断更新,新版本(我认为5.0)包括以服务器为中心的架构和自定义客户端的能力。

ZK 5有jQuery集成,如果你想用Javascript搞定,你可以使用它,虽然这是完全可选的 。 我还读到将要实现GWT,以便使用Java提供完整的客户端自定义。

它满足您的5个标准,也可以与Grails结合使用( 参见此处 )。 以下是一些启动的链接:

  • ZK Essentials
  • 开发人员的参考
  • 快速入门指南
  • ZK和MVC
  • ZK和Hibernate
  • ZK,Hibernate&Spring

我希望这些可以帮到你!

如果JSF + Hibernate + AJAX(可选+ EJB)听起来像你的东西,请查看Seam。

还可以在这里查看:

http://gokhan.ozar.net/best-java-web-frameworks/