`

Java REST框架一览

    博客分类:
  • REST
阅读更多

目前宣称支持REST的Java框架包括以下这些:
Restlet(http://www.restlet.org/
Cetia4(https://cetia4.dev.java.net/
Apache Axis2(http://http://ws.apache.org/axis2/
sqlREST(http://sqlrest.sourceforge.net/
REST-art(http://rest-art.sourceforge.net/

以下对这些框架进行了较为全面的分析。

Restlet,最新版本1.0.1
特点:完全抛弃了Servlet API,作为替代,自己实现了一套API。能够支持复杂的REST架构设计。
缺点:
1. 虽然也可以运行于Web容器中,但是难以利用Servlet和JSP等资源。因为需要另外学习一套API和概念,学习成本比较高。
2. 完全不支持服务器端的HTTP Session,强制完全基于无状态服务器模型来做开发。对于基于浏览器的应用来说,开发难度较高。
3. 自身没有包括与Spring的集成,可以使用第三方代码与Spring集成,集成难度较大。
4. 文档不是很丰富,大多比较简短,很多时候需要自己去读代码,或者到其wiki上去查找。
5. 没有内建的国际化支持。
优点:
1. 有内建的HTTP认证机制,不需要另外开发安全机制。
2. 灵活性较高,支持更多的REST概念,支持透明的内容协商,适合于开发更加强大的REST组件(不限于服务器端应用)。
3. 零配置文件,全部配置通过代码来完成。

相关资源:
功能列表:http://www.restlet.org/about/features
简介:http://www.restlet.org/about/introduction
教程:http://www.restlet.org/documentation/1.0/tutorial
FAQ:http://www.restlet.org/about/faq

Cetia4,最新版本1.0
特点:基于Servlet API开发,可以运行于所有的Web容器中。
优点:
1. 可以充分利用Servlet API和JSP等资源,需要额外学习的概念较少,学习成本较低。
2. 对于传统的Web应用,可以使用服务器端HTTP Session;对于Web服务类应用,不使用HTTP Session,基于无状态服务器模型做开发。
3. 自身包括了对于Web MVC的支持,熟悉Web MVC框架的开发者很容易理解。还内建了参数映射、参数验证等等传统Web MVC框架所支持的功能。
4. 内建了自己特有的导航对象栈的概念,对于支持传统的Web应用的开发(基于浏览器的导航)非常有帮助。
5. 提供了JSP标签库,对于传统的基于HTML表单的Web开发非常有帮助。
6. 支持与SiteMesh相配合,由SiteMesh来支持页面布局的重用。
7. 内建有与Spring的集成,集成起来非常容易。
8. 配置文件完全基于标准的web.xml,不需要额外的配置文件。大量使用默认配置,一般情况下足以满足常见的需求。
9. 拥有很好的文档。
10. 有内建的国际化支持。
缺点:
1. 没有内建的HTTP认证机制,需要自行开发安全机制。
2. 对于内容协商的支持比较弱,仅支持HTML和XML格式的表现。需要加以扩展才能支持其他格式的表现。

相关资源:
教程:https://cetia4.dev.java.net/files/documents/5545/38989/cetia4_tutorial.pdf

Axis2,最新版本1.2
特点:同时支持SOAP和REST风格的Web Service。
缺点:
1. 仅仅支持GET与POST方法。
2. 仅仅是以REST风格暴露出Web服务,数据格式仍然是包含SOAP封装的XML,不能使用更加有效的格式。
3. 只支持同步的调用方式。
4. 仅仅提供了以SOAP方式暴露Web服务的最小化的支持,不支持全面的REST架构设计。

相关资源:
简介:http://ws.apache.org/axis2/1_2/rest-ws.html

sqlREST,最新版本0.3.1
特点:
1. 为任何可以通过JDBC访问的数据库提供Web服务访问接口,自动将REST风格的HTTP请求转换为相应的数据库SQL语句,并将数据库中的记录编码为XML格式传给客户端。是REST风格的HTTP请求到数据库中的数据的直接映射。
2. 基于Servlet API开发。
缺点:
1. 因为是REST风格的HTTP请求到SQL语句的直接映射,因此强制使用以SQL和关系数据库为中心的数据建模设计方法,不支持面向对象的设计。灵活性很低,难以实现较为复杂的业务逻辑。
2. 因为资源的定义仅限于数据库的表,难以实现更高层次的抽象,必然会导致非常细粒度的API。应用的性能和可伸缩性都难以保证。

相关资源:
教程:http://sqlrest.sourceforge.net/5-minutes-guide.htm

REST-art,最新版本0.2
特点:一个旨在替换复杂的SOAP框架的REST框架,用来作为替代SOAP方便地发布Web服务的工具。不是基于Servlet API开发。
缺点:
1. 目前尚处于刚刚起步的阶段,功能非常少。
2. 不是基于Servlet API,带来了额外的学习成本。

相关资源:
教程:http://sourceforge.net/docman/index.php?group_id=175132

分享到:
评论

相关推荐

    中小企业数字化转型指南(2025年) 2025-1.docx

    中小企业数字化转型指南(2025年) 2025-1

    移动开发_安卓_键盘面板布局冲突处理_微信解决方案_1744035957.zip

    移动开发_安卓_键盘面板布局冲突处理_微信解决方案_1744035957

    华为OD机考辅导材料50题

    华为OD机考辅导材料50题

    软考网络工程师考试资料详细指南

    软考网络工程师考试是计算机技术与软件专业技术资格(水平)考试(简称“软考”)中的一个重要科目,属于中级资格。考试分为上午和下午两部分,上午为选择题,下午为案例分析题。软考网络工程师考试需要系统学习和充分准备。通过合理利用官方教材、历年真题、复习笔记、视频教程等资源,结合科学的备考计划和技巧,考生可以有效提升备考效率,顺利通过考试。

    Matlab Simulink中事件触发控制仿真的实现与稳定性研究

    内容概要:本文详细介绍了如何利用Matlab Simulink平台实现事件触发控制的仿真,并探讨了其稳定性的实现方法。文章首先解释了事件触发控制的基本原理,即仅在系统状态满足特定条件时进行控制动作,从而减少不必要的计算和资源消耗。接着,通过具体步骤指导读者搭建一个二阶系统的事件触发控制仿真模型,包括创建基础模型、添加事件触发模块以及构建控制回路。文中还提供了关键的Matlab代码片段用于实现事件触发逻辑,并详细讲解了各个模块的功能和参数设置。此外,文章强调了仿真参数的选择对结果的影响,并给出了具体的设置建议。最后,通过对仿真结果的分析,展示了事件触发控制的有效性和优越性。 适合人群:具有一定Matlab和Simulink基础的科研人员、工程师及学生。 使用场景及目标:①帮助用户深入了解事件触发控制的工作原理;②掌握使用Matlab Simulink进行复杂控制系统仿真的技能;③提高实际控制系统设计中的效率和性能。 其他说明:文章不仅提供了理论知识,还包括大量实战经验和技巧分享,有助于读者更好地理解和应用事件触发控制技术。

    【C#编程语言】VIP学习资源整合:涵盖基础至高级开发资源助力全阶段开发者成长

    内容概要:本文详细介绍了C#编程语言的学习资源,涵盖了从基础到高级的不同层次。首先,对于初学者,推荐了多本经典书籍如《C# 8.0 and .NET Core 3.0 - Modern Cross-Platform Development》、《C# 9.0 in a Nutshell》等,以及在线课程和视频教程,帮助理解C#的基本语法、面向对象编程等概念。接着,针对进阶开发者,提供了深入研究C#特性的书籍和课程,如《C# 9 and .NET 5 – Modern Cross-Platform Development》,并推荐了一些实战项目来巩固所学知识。最后,为高级开发者准备了深入探讨C#内部机制和技术细节的书籍,如《CLR via C#》,以及高级课程和开源项目。此外,还介绍了常用的开发工具(如Visual Studio、Visual Studio Code)、框架(如ASP.NET Core、Entity Framework Core),并列出了活跃的开发社区和论坛供交流学习。; 适合人群:所有对C#编程感兴趣的开发者,无论是初学者还是有经验的专业人士。; 使用场景及目标:①初学者可以通过基础资源快速入门C#编程,掌握基本语法和面向对象编程;②进阶开发者可以利用提供的资源深入理解C#特性,如并发编程、异步编程等;③高级开发者则可以通过高级资源和实战项目提升技术水平,解决复杂问题。; 其他说明:文中提到的资源不仅限于理论学习,还包括大量实战项目和开源项目,鼓励开发者在实践中不断积累经验。同时,活跃的社区和论坛也为开发者提供了良好的交流平台,有助于解决问题和获取最新资讯。

    【嵌入式系统】Systick定时器详解:24位倒计数定时器在延时与中断中的应用及寄存器函数解析

    内容概要:本文档详细介绍了Systick定时器的基础知识及其应用。Systick定时器是一个24位倒计数定时器,广泛用于延时或作为实时系统的心跳时钟。它能在计数到0后自动从RELOAD寄存器重载初始值,并可在睡眠模式下持续运行。文档重点解析了四个关键寄存器(CTRL、LOAD、VAL、CALIB)的功能与操作方式,并提供了基于这些寄存器实现的延时函数(delay_init、delay_us、delay_ms)。此外,还介绍了Systick库函数如SysTick_CLKSourceConfig()用于配置时钟源以及SysTick_Config()用于初始化Systick并设置中断优先级,最后给出了Systick中断服务函数SysTick_Handler()的定义。; 适合人群:对嵌入式系统开发有一定了解,特别是ARM架构的开发者。; 使用场景及目标:①理解Systick定时器的工作原理及内部寄存器的作用;②掌握如何利用Systick实现精确延时;③学会配置Systick定时器以适应不同的应用场景,如低功耗模式下的定时任务。; 阅读建议:建议读者结合实际硬件平台进行实验,深入理解各个寄存器的功能及延时函数的具体实现细节,同时关注Systick在不同工作模式下的行为特性。

    基于JAVAWEB校园订餐系统项目源码.zip

    基于JAVAWEB校园订餐系统项目源码

    Win10家庭版改装工具.exe

    可以把安装在电脑上的Windows 10企业版、教育版、专业版系统改装成Windows 10家庭版操作系统。

    (源码)基于 React 框架的前端技术示例项目.zip

    # 基于 React 框架的前端技术示例项目 ## 项目简介 本项目是一个基于 React 框架开发的前端示例项目,涵盖了 React 多种核心技术和开发模式,包含状态管理、路由懒加载、Hooks 使用、组件优化等多个方面,旨在帮助开发者深入理解和掌握 React 相关知识,可作为学习和实践 React 开发的参考。 ## 项目的主要特性和功能 1. 状态管理介绍了 setState 更新状态的两种写法(对象式和函数式),并说明了不同场景下的使用原则。同时,运用 React Hooks 中的 useState 让函数组件也能拥有状态并进行读写操作。 2. 路由懒加载通过 React 的 lazy 函数配合 import() 函数实现路由组件的动态加载,利用 <Suspense> 组件在加载路由打包文件前显示自定义的 loading 界面。

    医院挂号小程序源码.zip

    《医院挂号小程序源码》简介 该资源为医院挂号小程序源码,是一份极具实用价值的学习资源。在当今数字化医疗蓬勃发展的时代,小程序凭借其便捷性、轻量化等优势,成为医疗服务的重要载体。此挂号小程序源码蕴含丰富功能,涵盖用户端与管理端。 从用户端来看,患者可轻松注册登录,快速查询各科室医生排班信息,根据自身需求精准预约挂号,还能实时查看挂号进度与就诊提醒,极大提升就医体验。管理端则方便医院工作人员高效处理挂号业务,包括号源管理、预约审核、患者信息统计等,助力医院实现挂号流程的信息化与规范化。 对于开发者而言,研究这份源码能深入理解小程序开发架构、前后端交互逻辑以及医疗行业特定需求下的功能实现方式,从中汲取项目实战经验,拓宽技术视野,无论是用于个人技能提升,还是作为商业项目开发的参考范例,都有不可多得的学习价值,但需明确此资源仅作学习交流使用。

    (源码)基于HTML、CSS和JavaScript的TomMaixs studio网站.zip

    # 基于HTML、CSS和JavaScript的TomMaixs studio网站 ## 项目简介 此项目是TomMaixs studio的开源项目仓库,用于存储和维护TomMaixs studio的网站源代码。包含网站的基础架构、页面设计及必要配置信息,采用Apache License 2.0许可证开源,可供开发者免费使用和学习。 ## 项目的主要特性和功能 ### 主要特性 基于HTML、CSS和JavaScript构建,具备良好的跨平台兼容性。 有基础的网站架构和页面设计,便于开发者二次开发。 采用Apache License 2.0许可证,保证项目开放性和自由性。 ### 功能介绍 提供基础的网页浏览功能,涵盖主页、项目页面和关于页面等。 具备基础的网站导航和页面交互功能。 ## 安装使用步骤 1. 你已下载本项目的源码文件。 2. 确保开发环境安装了HTML、CSS和JavaScript的编辑器或IDE。

    一维声子晶体带隙仿真模型的Python实现及其应用

    内容概要:本文详细介绍了如何构建一维声子晶体结构带隙的仿真模型。首先解释了什么是声子晶体以及带隙的概念,接着阐述了平面波展开法和传递矩阵法这两种常用的一维声子晶体建模方法。文中提供了具体的Python代码示例,展示了如何通过有限元方法和传递矩阵法进行带隙计算,并通过Matplotlib库进行了可视化展示。此外,还讨论了一些常见的数值仿真陷阱及解决方案,如频率分辨率设置不当导致的锯齿状跳变等问题。 适合人群:对材料科学、物理学感兴趣的科研人员和技术爱好者,尤其是那些希望深入了解声子晶体带隙特性和仿真的读者。 使用场景及目标:适用于需要理解和研究声子晶体带隙特性的场合,如隔音材料设计、滤波器开发等。通过本文的学习,读者可以掌握一维声子晶体的基本理论和仿真技巧,为进一步的实际应用打下坚实的基础。 其他说明:本文提供的模型虽然相对简化,但对于初学者来说非常友好,有助于快速入门并激发更深层次的研究兴趣。同时,文中提到的一些优化建议和常见错误提示也非常有价值,可以帮助避免不必要的弯路。

    基于uni-app开发的菜谱小程序新版源码.zip

    《基于 uni-app 开发的菜谱小程序新版源码》简介 这是一份极具实用价值的学习资源——基于 uni-app 开发的菜谱小程序新版源码。uni-app 凭借其多端适配的强大特性,一次开发就能在多个平台运行,极大地提升了开发效率与应用覆盖范围。 此菜谱小程序源码功能丰富。它拥有精美且简洁直观的界面设计,方便用户快速上手操作。在内容呈现上,涵盖了海量的菜谱资源,无论是家常小菜、地方特色菜肴,还是异国料理,都能在其中找到详细的做法教程,步骤清晰,图文并茂,甚至部分还搭配了视频讲解,让烹饪新手也能轻松学会。 对于开发者而言,这份源码是学习 uni-app 开发的绝佳范例。可以深入研究其代码架构、页面布局、数据交互以及各种功能的实现逻辑,从中汲取经验,提升自己在跨平台移动应用开发方面的能力,更好地理解 uni-app 框架的优势与应用场景,为后续的开发项目奠定坚实的基础,助力开发出更多优质且高效的应用程序。

    电力系统中不平衡电网下整流与逆变电路的Simulink仿真及正负序分离控制策略

    内容概要:本文详细探讨了不平衡电网对整流电路和逆变电路的影响,并提出了通过Simulink仿真的解决方案。主要内容包括:不平衡电网对整流电路直流侧电压和逆变电路交流侧电流的影响机制;正负序分离方法及其在Simulink中的实现步骤;通过Simulink搭建模型验证控制策略的效果。文中还提供了具体的Matlab代码片段用于实现正负序分离和控制算法,展示了如何通过双闭环结构和PI调节器优化系统性能。 适合人群:从事电力电子、电力系统分析的研究人员和技术人员,尤其是那些关注电网不平衡条件下电力设备性能优化的人群。 使用场景及目标:适用于研究和开发不平衡电网条件下的电力电子设备控制系统,旨在提高电力系统的稳定性和电能质量。主要目标是减少直流侧电压的二倍频率波动和交流侧电流的负序分量,提升设备运行效率。 其他说明:文章不仅介绍了理论背景,还提供了详细的仿真模型构建指导和代码实现,有助于读者快速理解和应用所提出的控制策略。此外,文中提到的实际案例和调试技巧也为实际工程项目提供了宝贵的实践经验。

    Matlab simscape 入门案例:HowToBuildAMultibodyInSimulink (曲柄摇块机构建模仿真)

    在本案例“HowToBuildAMultibodyInSimulink”中,我们探索了如何使用MATLAB Simscape构建曲柄摇块机构的仿真模型。通过这个实例,你将学习到从零开始创建多体动力学模型的基本步骤,包括组件的选择与连接、参数设置以及仿真的运行。这是一个深入了解Simscape功能及其在机械系统建模中应用的绝佳入门教程,适合初学者提升技能并激发进一步学习的兴趣。

    Win11任务栏大小调整工具.exe

    Win11任务栏大小调整工具.exe

    软著 (2)(1)(1).docx

    软著 (2)(1)(1).docx

    Win11桌面右键菜单修改工具.exe

    Win11桌面右键菜单修改工具.exe

Global site tag (gtag.js) - Google Analytics