想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。
6年前关闭。
Improve this question
我希望开始使用Java进行网络开发-我有一些Java的基本知识,所以这不是问题,但是在解密用于Web应用程序的各种技术时我很茫然。
我可以使用哪些选项?它们如何工作?有没有可以用来简化事情的类似于Django/Ruby on Rails的框架?
我们将不胜感激任何有助于了解可用信息的链接。
最佳答案
Java框架有两种基本形式。一个称为“ Action ”框架,另一个称为“组件”框架。
Action 框架专门致力于将HTTP请求映射到Java代码( Action ),并将HTTP请求绑定(bind)到Java对象。 Servlet是Action Framework中最基本的,也是所有其他构建的基础。
Struts是最受欢迎的Action框架,但我不能凭良心向任何人推荐它。 Struts 2和Stripes更现代,并且彼此非常相似。两者的配置都很轻巧,易于使用,提供了非常好的绑定(bind)功能。
组件框架专注于UI,并倾向于基于高级UI组件(按钮,列表框等)促进事件驱动的体系结构。框架倾向于在几层以下隐藏来自编码器的实际HTTP请求。它们使开发更高级的UI变得容易得多。 .NET是Windows的组件框架。在Java上,流行的组件框架是JSF(标准)和Wicket。
通常,如果要创建“网站”。这更类似于呈现信息(例如博客或社区站点),因此Action框架可以更好地工作。这些站点通常更简单,经常添加书签,需要“漂亮的URL”等。使用Action框架通常更容易做到。
对于具有大量UI元素和复杂工作流程的后台应用程序,组件框架要好得多。您会发现,尤其是使用工具时,使用组件框架可以更快地将这些样式的应用程序组合在一起。但是组件框架具有更复杂的请求工作流程,有时依赖于隐藏状态,许多POST操作等。许多框架具有“可怕的” URL,并且有时创建难以添加书签的页面。
这两个框架都可以用于两个任务,只是有些框架比其他框架更适合该任务。
这些框架都不能直接解决持久性问题,但是许多框架都具有可与JPA/EJB3或Hibernate紧密配合的扩展模块或惯用语。