6

我想在 J2EE 上编写一个简单的 Web 应用程序,具有以下特点:

  1. 我不需要任何 AJAX,它甚至可以在浏览器上禁用 JavaScript 的情况下工作。
  2. 这是一个简单的 CRUD 应用程序
  3. 我需要完全控制每个元素在页面上的布局方式——不要对 GUI 的外观和感觉做出妥协。
  4. 我可以使用普通的旧 JDBC 进行数据访问 - 不需要 o/r 映射器
  5. 为页面添加书签是必要的(即,只要添加书签有意义)。
  6. 我的许多用户都非常使用标签式浏览。

我希望框架做的是:

  1. 给我一个很好的抽象来检索 GET 和 POST 参数
  2. 给我一个很好的工具来向用户显示验证错误和其他错误
  3. 提供一组标准安全功能 - 防止跨站点脚本,防止用户将下拉输入设置为下拉列表中不存在的值等
  4. 在不那么强大的服务器上,性能出色,可以很好地扩展 200 多个并发用户。(无集群 - 单节点,具有多个生产应用程序的共享应用程序服务器)
  5. 保持稳定;因为我希望该应用程序在没有重大重构的情况下运行至少 3-4 年

我看了一些框架,这就是我的感受。

  1. 纯 Servlets/JSP - 我需要自己编写所有代码 - 这需要时间,并且可能有很多错误
  2. Struts (1.x) - 与普通的 servlet 方法相比没有太多优势;虽然它确实将 POST 和 GET 参数映射到形成 bean,但我正在寻找的其他功能不存在;我需要花费大量时间自己编写代码
  3. JSF - 因为我读到的性能问题,我很害怕。看起来视图构建和维护占用了太多内存。此外,JSF 不能很好地与书签和选项卡式浏览器一起工作。
  4. Tapestry - 我看了一下 Tapestry 5。虽然它看起来不错,但它似乎也与标签式浏览和书签不兼容。虽然肯定支持“激活上下文”,但它只是一个字符串。它无法使用 GET 参数和隐藏的表单字段恢复状态(还)。此外,似乎有人担心框架的寿命——它似乎在没有向后兼容性的情况下发展。
  5. Apache Turbine - 一开始看起来不错;但它已经很老了,而且没有太多的活动让我害怕。

关于什么对我有好处有什么建议吗?谢谢!

PS:我只能使用 Apache 许可证(最好是 v2)或 BSD 许可证的许可证

4

8 回答 8

3

这是一个相当新的Java框架,但我认为它看起来非常棒

游戏框架

于 2009-11-23T07:49:11.600 回答
3

Stripes是一个 MVC Java Web 框架,它开创了 Java Web 开发的“约定优于配置”模式。Spring MVC 采用了其中一些模式,但我仍然更喜欢 Stripes,因为它只做一件事并且做得很好。

于 2009-11-07T17:01:57.613 回答
3

Spring-MVC 是另一个需要考虑的选项

于 2009-11-07T15:39:26.300 回答
2

格蕾丝可能吗?如果您不想使用,则不必使用 o/r 映射 (GORM),您可以使用普通的旧 JDBC

于 2009-11-07T15:37:53.027 回答
2

检票口怎么样?

http://wicket.apache.org

  • 基于组件的框架,标记和代码完全分离。每个“面板”组件都绑定到或多或少的纯 HTML 标记文件,让您可以根据需要精确地自定义外观。
  • 鼓励 OOP、轻松的自定义组件构建和代码重用。
  • 带有反馈的验证框架。
  • AJAX 对无 javascript 浏览器的内置“回退”行为的支持
  • 支持书签页面
于 2009-11-07T16:07:14.073 回答
0

感谢大家。明天我将使用 Spring MVC、Stripes(可能还有 Wicket)构建一些示例应用程序,并查看它们的实际应用:)

我会用我发现的更新这个答案..

谢谢!-帕迪姆纳

PS:令人失望的是,我无法在stackoverflow中将多个答案标记为“ANSWERED”...... :(我将不得不等待,看看我最终决定什么......

于 2009-11-07T17:48:14.667 回答
0

JSF - 因为我读到的性能问题,我很害怕。看起来视图构建和维护占用了太多内存。此外,JSF 不能很好地与书签和选项卡式浏览器一起工作。

试试Seam 框架

  • 提高性能(增加对话范围)
  • 修复了 JSF 以与 bookmars 和选项卡式浏览器一起工作
  • 许多其他专业人士:)

接缝很好有两个原因:

  1. 它可以让您快速创建应用程序(基本的 CRUD,如 RoR 或 Grails 风格)
  2. 将为以后的发展打下良好的基础。

我想在 J2EE 上编写一个简单的 Web 应用程序,具有以下特点: 1. 我不需要任何 AJAX,它甚至可以在浏览器上禁用 JavaScript 的情况下工作。

使用 JSF 良好的库(Richfaces 或 Icefaces),编写 JavaScript 代码可以减少到最少。为什么浏览器会禁用 JavaScript?

2.它是一个简单的CRUD应用程序

Seam 非常适合通过 seam-gen 工具生成 CRUD 应用程序。

3. 我需要完全控制页面上每个元素的布局方式——不要对 GUI 的外观和感觉做出妥协。

这适用于 CSS 代码。使用facelets作为模板,您可以减少工作量。

4. 我可以使用普通的旧 JDBC 进行数据访问 - 不需要 o/r 映射器 对于简单的 CRUD 应用程序 ORM 是非常酷的功能,使用 Seam 你将免费获得它。但 ORM 不是强制性的。

5. 为页面添加书签是必要的(即在任何有意义的地方添加书签)。

正如 Seam 所述,不再是问题。在“普通”JSF 中,只有 POST 请求,这是一个问题。

6. 我的很多用户都非常使用标签式浏览。

Seam 引入了新的范围(对话和业务流程),因此现在可以打开几个选项卡并同时执行多个任务/流程。

我希望框架做的是: 1. 给我一个很好的抽象来检索 GET 和 POST 参数

这就是 JSF 的特点。

2. 给我一个很好的工具来向用户显示验证错误和其他错误

Seam 与 Hibernate Validator 集成,并且对消息和 i18n 有很好的支持。

3. 提供一组标准的安全功能——防止跨站脚本,防止用户将下拉输入设置为下拉列表中不存在的值,等等

IMO JSF 库在这个领域做得很好。

4. 在不那么强大的服务器上,性能出色,可以很好地扩展超过 200 个并发用户。(无集群 - 单节点,具有多个生产应用程序的共享应用程序服务器)

性能 - 是的。Seam fix 打破了无状态应用程序设计模式,促进了有状态应用程序。从性能视图中使用状态中的 POJO 类似于 Struts 或 Spring 等其他框架。对于现实世界的用例,请参阅生产页面中的接缝

5、稳定;因为我希望该应用程序在没有重大重构的情况下运行至少 3-4 年

Seam 和 JSF 是稳定的技术。

于 2009-11-07T16:50:17.573 回答
0

当您尝试 Stripes 时,您可以使用Rayures(使用Maven)或Stripes-Quickstart(使用Ant)快速入门。

于 2009-11-16T02:02:51.760 回答