毫无疑问,Java 是当今世界上最重要的编程语言之一。js 框架给程序员提供了 一个可以构建程序的坚实基础。它包括定义的类和功能,用于硬件设备管理,与系统软件交互并处理输入,让开发人员变得更轻松。JavaScript 框架旨在支持动态网站,Web服务,Web资源和Web应用程序的开发。在本文中,搜集了 5 个关于Java Web框架的信息。

1.Spring MVC - Java Web 框架

自离首次发布 10 多年以来,Spring MVC 框架仍然领先于竞争对手。随着时间的推移,它扩展成一个完整的MVC框架,并不断演变成一个全面的Java框架。作为集成特殊应用科学的分层J2EE / Java框架,该框架为软件工程师提供了用于 Web 应用程序配置,应用程序开发和安全项目的完整工具包。该框架以其发达的生态系统而闻名,它提供了许多附加选项,从SOAP Web服务,REST API到安全加密和授权。

优点:

  • 增强模块化的轻量级容器

  • 可以跨各种平台进行部署

  • 灵活的依赖注入使用

  • 包括XML,Java和注释配置的三路配置

  • 通过POJO's缓解了注射测试的数据

缺点:

  • 学习曲线比较陡峭

  • 新手实施比较困难

  • 需要花费时间部署

2.JSF - Java Web 框架

Oracle 认为 JSF 是一个实用网络 Java 框架,旨在简化基于Web的UI的集成开发。虽然这个框架在Java开发方面不是很好,但是Oracle提供的文档很容易使用。这是一种标准化的技术,拥有丰富的工具和库,可以为你在高度复杂的应用程序中铺平道路。JSF规范允许启用标准用户界面组件的重用和扩展。它减少了创建和维护Java应用程序在服务器上运行和在目标客户端上呈现 UI 应用程序的痛苦。不仅如此,它还提供简单的数据传输和可重用的UI组件。

优点

  • 由于它可以创建可重复使用的组件,因此效率更高且一致

  • 支持像EJB这样的JSF实现的优秀供应商(IBM,Oracle,JBoss等)

  • 准备使用像Apache,Infragistics,Richfaces等组件

  • 方便开发人员,特别是那些使用IDE软件的人

JSF的缺点

  • 陡峭的学习曲线

  • 没有考虑书签工具

  • 不可扩展

  • 原始Ajax支持

  • 缺乏灵活性

3.Google Web Toolkit - Java Web 框架

Google Web Toolkit(GWT)是一个开源开发工具集,使开发人员能够构建和优化复杂的JS前端应用程序。它的主要目标是提供高性能Web应用程序的开发,即使开发人员不熟悉 JavaScript,XMLHttpRequest 或浏览器等偏冷门的知识。为了让其可信度高,谷歌自己的许多产品,包括 AdSense,Hotel Finder,Wallet,AdWords 等都使用 GWT。

优点:

  • 更容易学习

  • 内置IDE支持重构Java代码

  • 可以在客户端大量构建响应式Web应用程序,并减少服务器端的琐事

  • 可以迭代地平滑地从典型的Web应用程序迁移到GWT应用程序

  • 即使在使用AJAX的情况下,也具有内置的浏览器后退按钮支持

缺点:

  • 仅对Java开发人员有利,对PHP或.NET的开发人员没有太大帮助

  • 由于快速发展的GWT,有许多版本很难获得所有功能和接口

  • 编译速度慢,需要使用专有方法来定义结构

4.Grails - Java Web 框架

Grails 是一个开源的Java Web框架,旨在将开发人员的生产力与默认值和Convention-over-Configuration API相提并论。它与Java虚拟机(JVM)相集成,同时提供强大的功能,包括编译时元编程,异步编程和领域特定语言。Grails采用强大的视图技术,集成的NoSQL / ORM支持,插件和Spring支持的依赖注入进行更新。让你可以轻松集成并互操作Java,Java EE和JVM容器。

优点:

  • Grails提供了一个快速的开发周期

  • 非常适合小型和中型项目

  • 各种插件可供选择

  • 简单而令人易懂的文档

  • 可以在不重启服务器的情况下更改配置

缺点:

  • 使用运行时语言可能会很困难

  • 开发多线程应用程序,GORM 可能会出现问题

  • 复杂的集成过程

  • 延迟运行时间

5.Struts 2 - Java Web框架

Apache的Struts是一个用于开发现代Java Web应用程序的开源免费MVC框架。它包含一组类和接口,共同协作开发Web应用程序。它适用于许多Java应用程序的网络框架,并且受到了很多社区的支持。为了进一步扩展Struts Java框架,Struts 2 作为后继者有了很大的改变。这个框架最适合于开发当代 Java EE web 应用程序的工程师,Apache 软件基金会借助 Struts 2 为开发人员提供了一个用于开发面向网络的,企业级应用程序,并优化整个开发流程的工具。

优点:

  • 没有线程安全问题

  • 依赖注入使得测试更简单

  • 它可以使用“对象图导航语言”(OGNL)

  • Struts 2框架的Servlet上下文以简单的地图形式表示

  • 它支持通过验证方法进行手动验证,并且还包含子框架验证

缺点:

  • 由于它与Struts 1完全不同,难以迁移

  • Struts 2 文档非常有限

  • 由于文档管理不善,新用户很难发现它的优点

参考  https://blog.csdn.net/JackRen_Developer/article/details/79519538

五大 JAVA Web 框架的优缺点对比,Spring MVC 领先的更多相关文章

  1. java web开发入门六(spring mvc)基于intellig idea

    spring mvc ssm=spring mvc+spring +mybatis spring mvc工作流程 1A)客户端发出http请求,只要请求形式符合web.xml文件中配置的*.actio ...

  2. 360[警告]跨站脚本攻击漏洞/java web利用Filter防止XSS/Spring MVC防止XSS攻击

    就以这张图片作为开篇和问题引入吧 <options>问题解决办法请参考上一篇 如何获取360站长邀请码,360网站安全站长邀请码 首先360能够提供一个这样平台去检测还是不错的.但是当体检 ...

  3. Java Web框架前景浅析

    基于三(多)层架构模式,典型WEB系统的总体架构如下图所示: 在上述分层架构中,整个应用被划分为两大部分: 客户端:基于浏览器提供信息展现.用户交互等功能.所采用的技术主要有:HTML/HTML5.J ...

  4. Java安全框架(一)Spring Security

    Java安全框架(一)Spring Security ​ 文章主要分三部分 1.Spring Security的架构及核心组件:(1)认证:(2)权限拦截:(3)数据库管理:(4)权限缓存:(5)自定 ...

  5. 读《架构探险——从零开始写Java Web框架》

    内容提要 <架构探险--从零开始写Java Web框架>首先从一个简单的 Web 应用开始,让读者学会如何使用 IDEA.Maven.Git 等开发工具搭建 Java Web 应用:接着通 ...

  6. [转]轻量级 Java Web 框架架构设计

    工作闲暇之余,我想设计并开发一款轻量级 Java Web 框架,看看能否取代目前最为流行的而又越来越重的 Spring.Hibernate 等框架.请原谅在下的大胆行为与不自量力,本人不是为了重造轮子 ...

  7. java web框架发展的新趋势--跨界轻型App

    “跨界(cross over)在汽车界已然成风,将轿车.SUV.跑车和MPV等多种不同元素融为一体的混搭跨界车型,正在成为汽车设计领域的新趋势.从个人而言,当包容.多元的审美要求和物质要求越来越强烈时 ...

  8. Smart Framework:轻量级 Java Web 框架

    Smart Framework:轻量级 Java Web 框架 收藏 黄勇   工作闲暇之余,我开发了一款轻量级 Java Web 框架 —— Smart Framework. 开发该框架是为了: 加 ...

  9. JAVA web 框架集合

    “框架”犹如滔滔江水连绵不绝, 知道有它就好,先掌握自己工作和主流的框架: 在研究好用和新框架. 主流框架教程分享在Java帮帮-免费资源网 其他教程需要时间制作,会陆续分享!!! 152款框架,你还 ...

随机推荐

  1. linux 内核数据结构之红黑树.

    转载: http://www.cnblogs.com/haippy/archive/2012/09/02/2668099.html https://zh.wikipedia.org/zh/%E7%BA ...

  2. 已知两个int变量a、b,定义4个方法分别对变量a、b进行加减乘除运算,并测试结果。

    package com.fs.test; public class Test { public void aMethod(int a, int b) { int add = a + b;//*表示加法 ...

  3. 启动angular项目,端口被占用

    启动项目,npm start,报如下错误: 解决:1.win+R,输入CMD,启动命令行窗口. 2.输入netstat -ano或者netstat -ano|findstr 8080,查看8080端口 ...

  4. ios UICollectionView 加载数据后 滑动卡顿问题

    最近项目的资源图片变大了,滑动时总是卡顿,在这里用NSOperationQueue解决了一下 .h 文件 @interface CollectionViewCell : UICollectionVie ...

  5. iOS 支付 [支付宝、银联、微信]

    这是开头语 前不久做了一个项目,涉及到支付宝和银联支付,支付宝和银联都是业界的老大哥,文档.SDK都是很屌,屌的找不到,屌的看不懂,屌到没朋友(吐槽而已),本文将涉及到的最新可用SDK.文档,以及本人 ...

  6. Redis【1】Linux下安装~

    先去Redis官网下载tar.gz文件.点击中间的[Check the downloads page.].再点击中间Stable 模块的[Download]下载 这把我做演示的文件是 redis-5. ...

  7. python-函数4(递归、高阶函数)

    python-函数4(递归.高阶函数) 递归 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. 递归特性: 1. 递归必须有一个明确的结束条件 2. 每次进入更深一 ...

  8. (转) Weblogic在Linux上节点服务器启动正常,计算机连接不上

    对于服务器AdminServer, 与计算机Machine-0相关联的节点管理器无法访问.               所有所选服务器当前都处于与此操作不兼容的状态, 或未与运行的节点管理器关联, 或 ...

  9. PrimeFaces ab function

    The PrimeFaces.ab function is a shortcut function for PrimeFaces.ajax.AjaxRequest. //ajax shortcut a ...

  10. 在同一个方法里,有redis,数据库和api,如何保证方法的事务性或者最终一致性?

    https://segmentfault.com/q/1010000017519179/a-1020000017547192