Java 网络开发 [关闭]

2023-12-27

我希望开始使用 Java 进行 Web 开发 - 我有一些基本的 Java 知识,所以这不是问题,但当涉及到破译 Web 应用程序中使用的各种技术时,我感到很茫然。

我有哪些选择?它们是如何工作的?有没有类似于 Django/Ruby on Rails 的框架可以用来简化事情?

任何有助于理解可用内容的链接将不胜感激。


Java 框架有两种基本风格。一种称为“操作”框架,另一种称为“组件”框架。

操作框架专门用于将 HTTP 请求映射到 Java 代码(操作),并将 HTTP 请求绑定到 Java 对象。 Servlet 是最基本的操作框架,也是构建所有其他框架的基础。

Struts 是最流行的 Action 框架,但我不能凭良心向任何人推荐它。 Struts 2 和 Stripes 更现代,并且彼此非常相似。两者配置都很轻,开箱即用,提供非常好的绑定功能。

组件框架专注于 UI,并倾向于推广基于高级 UI 组件(按钮、列表框等)的事件驱动架构。框架倾向于将编码器的实际 HTTP 请求隐藏在多个层下。它们使开发更高级的 UI 变得更加容易。 .NET 是 Windows 的组件框架。在 Java 上,流行的组件框架是 JSF(一种标准)和 Wicket。

通常,如果您要创建一个“网站”。这更类似于呈现信息(如博客或社区网站),操作框架效果更好。这些网站往往更简单,经常被添加书签,需要“漂亮的 URL”等。使用 Action 框架通常更容易做到这一点。

组件框架更适合具有大量 UI 元素和复杂工作流程的后台应用程序。您会发现,尤其是使用工具时,这些风格的应用程序将使用组件框架更快地组合在一起。但组件框架具有更复杂的请求工作流程,有时依赖于隐藏状态、大量 POST 操作等。许多组件框架具有“可怕”的 URL,有时会创建难以添加书签的页面。

这两个框架都可以用于这两项任务,只是有些框架比其他框架更适合该任务。

这些框架都没有直接解决持久性问题,但许多框架都有与 JPA/EJB3 或 Hibernate 紧密配合的扩展模块或习惯用法。

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

Java 网络开发 [关闭] 的相关文章

随机推荐

  • Android 应用程序可以将自己呈现为(虚拟)Matter 设备吗?

    是否可以创建一个将自身呈现为 Matter 设备的 Android 应用程序 例如温度计 有示例代码吗 Android 应用程序可能无法做到这一点 因为它无法始终按需监听外部通信 您可以寻找在 Android 系统上运行本地服务器并以这种方
  • 如何控制 Android 工具栏中的菜单位置

    我想改变 android xml 代码中膨胀菜单项的重力 但我找不到任何属性来解决问题 我想要其中的一个项目left侧面和另一个项目right角的一侧在Toolbar 你们有什么想法吗 这是我现在的状态 这是我的菜单 xml menu me
  • rstudio 到命令行 R 的不同库路径 (`$R_LIBS_USER`)

    我正在尝试找出为什么我的 libPath命令行 R 和 RStudio 之间的不同Desktop 注 这是not的副本这个问题 https stackoverflow com questions 7129213 r libpaths dif
  • 如何在 Haskell 的 GI-Gtk 中将 Widget 转换为 Label?

    我有这个示例代码 其中有一个包含 ListBoxRows 的 ListBox 而 ListBoxRows 又包含一个 Label 当我单击 ListBox 时 我得到一个 ListBoxRow 到目前为止 一切都很好 当我想与 ListBo
  • 类型错误:db.collection 不是函数,无法获取

    我正在尝试从中获取一些数据apiRoutes get resources productinfo name 我有这个错误 我不知道出了什么问题 还有apiRoutes get book title 似乎不起作用 我不知道我做错了什么 更新
  • CommandManager.RequerySuggested 如何工作?

    MSDN 仅指出 当 CommandManager 检测到可能改变命令执行能力的条件时发生 然而我似乎找不到任何关于它是如何工作的痕迹 我应该知道 避免什么等等 它只是监听输入吗 即 鼠标移动 按下按键等 我无法准确告诉你发生了什么事件Co
  • 添加到自定义 ActionLink 帮助程序扩展的 htmlAttributes

    我正在尝试创建 Html ActionLink HtmlHelper 的简单自定义版本 我想将一组额外的属性附加到传入的 htmlAttributes 匿名对象中 public static MvcHtmlString NoFollowAc
  • 选择中的 VBA Rows.Count

    我正在计算用户选择在操作按钮旁边的工作表顶部显示的行数 即按钮显示 生成电子邮件 旁边显示 已选择 x 个项目 由于每次选择更改时都会更新 因此我有以下代码 Private Sub Worksheet SelectionChange ByV
  • 如何获取多语言的维基百科页面?

    我怎样才能获得另一种语言的相同维基百科页面 例如我想获得日语页面 http en wikipedia org wiki Cloud http en wikipedia org wiki Cloud 结果是 http ja wikipedia
  • 释放 Windows 文件共享锁

    这个问题在工作中时不时就会出现 我们的构建机器可以通过普通的 Windows 文件共享访问其文件 如果有人远程浏览计算机上的文件夹 并将窗口打开过夜 则构建会失败 就像现在所做的那样 左侧打开的资源管理器窗口指向源树中的子文件夹之一 构建会
  • Rails 3 从另一个控制器渲染部分内容(错误:ActionView::MissingTemplate)

    我试图在 application html erb 的标头中包含登录名 用户名 密码 我收到此错误 Missing partial login with handlers gt rjs builder rhtml erb rxml loca
  • kafka-console-consumer 使用什么消费组

    当我像这样运行 kafka console consumer 时 bin kafka console consumer sh bootstrap server localhost 9092 topic test 它默认属于哪个消费群体 如果
  • SQL 获取未参与项目的姓名

    我想检索未参与 PostgreSQL 项目的人员姓名 我有一张名为employees和他们的names and ssn 我的第二张桌子叫做works on并包括ssn and project number ssn这里有一个foreign k
  • Python 'sys.argv' 的最大参数数量有限制吗?

    我有一个Python脚本需要处理大量文件 为了解决 Linux 对可传递给命令的参数数量相对较小的限制 我使用find print0 with xargs 0 我知道另一种选择是使用 Python 的 glob 模块 但是当我有更高级的模块
  • 在 Android 中使用 Retrofit 时带有动态键的 JSON

    我是新使用的Retrofit与安卓 我陷入了向REST Api并且响应有一个动态键 谁能告诉我解析的最佳方法是什么JSON像这样的东西 Meta Data 1 Information Intraday 1min prices and vol
  • 对 Access 中的(隐藏)系统表运行 C# 查询?

    我正在尝试使用 C 对 Access 2007 数据库运行以下查询 OleDbCommand command new OleDbCommand command Connection connect command CommandText S
  • 没有数据源时如何给出“Empty ListView Message”

    我的应用程序有一个带有 GridLayout 的 ListView 我现在尝试将 ListView 组引入我的应用程序 比如说 数据源通常有 Group1 Group2 和 Group3 我想一直显示所有 3 个组 无论其中是否有元素 当组
  • Julia 的 numpy.einsum 吗? (2)

    从此而来question https stackoverflow com questions 22521574 numpy einsum for julia 我想知道是否可能有更广义的 einsum 让我们假设 我遇到了问题 using P
  • 为什么需要在菱形层次结构的中间指定虚拟继承?

    我有钻石级的类 A B C D 为了避免 D 中存在 A 的两个副本 我们需要在 B 和 C 处使用虚拟继承 class A class B virtual public A class C virtual public A class D
  • Java 网络开发 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我希望开始使用 Java 进行 Web 开发 我有一些基本的 Java 知识 所以这不是问题 但当涉及到破译 Web 应用程序中使用的各种