我想在 J2EE 上编写一个简单的 Web 应用程序,具有以下特点:
- 我不需要任何 AJAX,它甚至可以在浏览器上禁用 JavaScript 的情况下工作。
- 这是一个简单的 CRUD 应用程序
- 我需要完全控制每个元素在页面上的布局方式——不要对 GUI 的外观和感觉做出妥协。
- 我可以使用普通的旧 JDBC 进行数据访问 - 不需要 o/r 映射器
- 为页面添加书签是必要的(即,只要添加书签有意义)。
- 我的许多用户都非常使用标签式浏览。
我希望框架做的是:
- 给我一个很好的抽象来检索 GET 和 POST 参数
- 给我一个很好的工具来向用户显示验证错误和其他错误
- 提供一组标准安全功能 - 防止跨站点脚本,防止用户将下拉输入设置为下拉列表中不存在的值等
- 在不那么强大的服务器上,性能出色,可以很好地扩展 200 多个并发用户。(无集群 - 单节点,具有多个生产应用程序的共享应用程序服务器)
- 保持稳定;因为我希望该应用程序在没有重大重构的情况下运行至少 3-4 年
我看了一些框架,这就是我的感受。
- 纯 Servlets/JSP - 我需要自己编写所有代码 - 这需要时间,并且可能有很多错误
- Struts (1.x) - 与普通的 servlet 方法相比没有太多优势;虽然它确实将 POST 和 GET 参数映射到形成 bean,但我正在寻找的其他功能不存在;我需要花费大量时间自己编写代码
- JSF - 因为我读到的性能问题,我很害怕。看起来视图构建和维护占用了太多内存。此外,JSF 不能很好地与书签和选项卡式浏览器一起工作。
- Tapestry - 我看了一下 Tapestry 5。虽然它看起来不错,但它似乎也与标签式浏览和书签不兼容。虽然肯定支持“激活上下文”,但它只是一个字符串。它无法使用 GET 参数和隐藏的表单字段恢复状态(还)。此外,似乎有人担心框架的寿命——它似乎在没有向后兼容性的情况下发展。
- Apache Turbine - 一开始看起来不错;但它已经很老了,而且没有太多的活动让我害怕。
关于什么对我有好处有什么建议吗?谢谢!
PS:我只能使用 Apache 许可证(最好是 v2)或 BSD 许可证的许可证