为简单、可访问的应用程序选择哪种 J2EE Web 开发框架?

2023-12-20

我想在 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. 普通 Servlet/JSP - 我需要自己编写所有代码 - 这需要时间,并且可能有很多错误
  2. Struts (1.x) - 与普通 servlet 方法相比并没有提供太多优势;虽然它确实映射 POST 和 GET 参数以形成 bean,但我正在寻找的其他功能不存在;我需要投入大量时间自己编码
  3. JSF - 我很害怕它,因为我读到过它的性能问题。看来视图构建和维护占用了太多内存。此外,JSF 不能很好地与书签和选项卡式浏览器配合使用。
  4. Tapestry - 我看了一下 Tapestry 5。虽然它看起来不错,但它似乎与选项卡式浏览和书签不兼容。虽然肯定支持“激活上下文”,但它只是一个字符串。它无法使用 GET 参数和隐藏表单字段恢复状态(目前)。此外,人们似乎担心该框架的寿命——它的发展似乎没有向后兼容性。
  5. Apache Turbine - 起初看起来不错;但它很旧而且没有太多活动的事实让我感到害怕。

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

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


Spring-MVC 是另一个值得考虑的选择

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为简单、可访问的应用程序选择哪种 J2EE Web 开发框架? 的相关文章

  • 不支持的字段:将瞬间格式化为日期 ISO 时的年份[重复]

    这个问题在这里已经有答案了 我正在尝试将 Instant 格式化为 ldap 日期 ISO8601 但在 f format Instant now 处失败 String input 20161012235959 0Z DateTimeFor
  • 在 String 值之后打印 int 值

    我有以下示例代码 int pay 80 int bonus 65 System out println pay bonus bonus pay 有人可以向我解释一下为什么我得到以下输出 145 6580 您的代码正在从左到右解释表达式 pa
  • 如何从 Java 访问 Windows 设备管理器中的信息?

    我有一个串行 USB 设备 并且其中多个设备可以连接到计算机 我需要查询和检索设备连接到的 COM 端口列表 在 Windows 设备管理器中 您可以获得当前连接的设备的 COM 端口 友好名称 该列表是动态的 从注册表中读取不工作 htt
  • 如何准确判断 double 是否为整数? [复制]

    这个问题在这里已经有答案了 具体来说 在 Java 中 我如何确定double是一个整数 为了澄清 我想知道如何确定 double 实际上不包含任何分数或小数 我主要关心的是浮点数的性质 我想到的方法 以及我通过谷歌找到的方法 基本上遵循以
  • Apache Thrift Java-Javascript 通信

    我正在编写一个基于 Apache Thrift 的 Java 服务器 它将从 Javascript 客户端接收数据 我已经完成了 Java 服务器 但问题是我可以获得 Javascript 客户端的工作示例 我无法找到一个好的示例 构建文档
  • 获取Android库中的上下文

    我正在编写一个 Android 应用程序 它的一些功能封装在内部库中 但是 要使此功能发挥作用 库需要一个应用程序上下文的实例 为图书馆提供这种上下文的最佳方式是什么 我看到了一些选择 但没有一个有吸引力 Have my library c
  • Maven WebApp META-INF context.xml

    我正在使用 Maven 3 并且尝试在 webapp 文件夹下添加 META INF 文件夹 所以我正在尝试执行以下操作 src main webapp META INF context xml WEB INF 下面是我的 POM 文件
  • Spring HATEOAS 和 HAL:更改 _embedded 中的数组名称

    我正在尝试使用 Spring HATEOAS 构建符合 HAL 的 REST API 经过一番摆弄后我终于开始工作了mostly正如预期的那样 示例 输出现在看起来像这样 links self href http localhost 808
  • 使用 Jena 查询维基数据

    目前 Wikidata 有一个 SPARQL 端点 https query wikidata org https query wikidata org 我想使用 Jena 3 0 1 查询此网站 我使用以下代码 但收到错误消息 端点返回的
  • 如何在Netbeans中设置JList的ListModel?

    我在 Netbeans IDE 的帮助下设计了一个 Swing GUI 该 GUI 包含一个 JList 默认情况下 它使用 QAbstractListModel 将其作为 JList 构造函数中的参数传递以创建该 JList 我想在 Ne
  • RxJava android mvp 单元测试 NullPointerException

    我是 mvp 单元测试的新手 我想对演示者进行一个非常基本的测试 它负责登录 我只想断言 view onLoginSuccess 这是演示者代码 public LoginPresenter LoginViewContract loginVi
  • 使用 Guava Ordering 对对象列表进行多条件排序

    我有一个类无法实现可比较 但需要根据 2 个字段进行排序 我怎样才能用番石榴实现这一目标 假设班级是 class X String stringValue java util Date dateValue 我有一个清单 List
  • Janusgraph 0.3.2 + HBase 1.4.9 - 无法设置 graph.timestamps

    我在 Docker 容器中运行 Janusgraph 0 3 2 并尝试使用运行 HBase 1 4 9 的 AWS EMR 集群作为存储后端 我可以运行 gremlin server sh 但如果我尝试保存某些内容 我会得到粘贴在下面的堆
  • 开发者环境-如何调用/消费其他微服务

    背景 我的环境 Java Play2 MySql 我在 Play2 gt S1 S2 S3 上编写了 3 个无状态 Restful 微服务 S1 消耗来自 S2 和 S3 的数据 因此 当用户点击 S1 时 该服务会异步调用 S2 S3 合
  • Proguard 正在破坏我的清洁度。 Gson 和泛型

    我有一个从持久性加载信息的函数 我只是以一种非常简单的方式告诉它的类型 该类称为SharedPreferencesHelper kt所以它是一个真正的生活问题解决者 fun
  • 为什么不能在 if 语句中声明变量?

    以下 Java 代码无法编译 int a 0 if a 1 int b 0 if a 1 b 1 为什么 不能有任何代码路径导致程序将 1 分配给b无需先声明 我突然想到b的变量范围可能仅限于第一个if声明 但后来我不明白为什么 如果我实在
  • java Web应用程序中的日期转换

    String date1 13 03 2014 16 56 46 AEDT SimpleDateFormat sdf new SimpleDateFormat dd MM yyyy HH mm ss z sdf setTimeZone Ti
  • Java时区混乱

    我正在运行 Tomcat 应用程序 并且需要显示一些时间值 不幸的是 时间快到了 还有一个小时的休息时间 我调查了一下 发现我的默认时区被设置为 sun util calendar ZoneInfo id GMT 08 00 offset
  • 如何在J2ME中获取数字的幂[重复]

    这个问题在这里已经有答案了 可能的重复 J2ME power double double 数学函数实现 https stackoverflow com questions 2076913 j2me powerdouble double ma
  • Android ClassNotFoundException:在路径上找不到类

    10 22 15 29 40 897 E AndroidRuntime 2561 FATAL EXCEPTION main 10 22 15 29 40 897 E AndroidRuntime 2561 java lang Runtime

随机推荐