衡阳网站建设公司电话咋把网站制作成软件

pingmian/2026/1/23 13:00:19/文章来源:
衡阳网站建设公司电话,咋把网站制作成软件,网站seo基本流程,济宁百度网站建设这是有关使用Spring 3.1和Spring Security 3.1和基于Java的配置来建立安全的RESTful Web Service的系列文章的第七篇。 本文将重点介绍RESTful Web服务中的分页实现 。 REST with Spring系列#xff1a; 第1部分– 使用Spring 3.1和基于Java的配置引导Web应用程序 第2部分–… 这是有关使用Spring 3.1和Spring Security 3.1和基于Java的配置来建立安全的RESTful Web Service的系列文章的第七篇。 本文将重点介绍RESTful Web服务中的分页实现 。 REST with Spring系列 第1部分– 使用Spring 3.1和基于Java的配置引导Web应用程序 第2部分– 使用Spring 3.1和基于Java的配置构建RESTful Web服务 第3部分– 使用Spring Security 3.1保护RESTful Web服务 第4部分– RESTful Web服务可发现性 第5部分– 使用Spring进行REST服务发现 第6部分– 使用Spring Security 3.1的RESTful服务的基本身份验证和摘要身份验证 页面作为资源vs页面作为表示 在RESTful架构的上下文中设计分页时的第一个问题是将页面视为实际资源还是仅表示资源 。 将页面本身视为资源会带来许多问题例如不再能够在调用之间唯一地标识资源。 这加上以下事实在RESTful上下文之外不能将页面视为适当的实体但是在需要时构造的所有者会使选择变得简单 页面是表示的一部分 。 在REST上下文中的分页设计中的下一个问题是在何处包括分页信息 在URI路径中 / foo / page / 1 URI查询 / foopage 1 请记住 页面不是资源 因此不再可以将页面信息编码为URI。 URI查询中的页面信息 在URI查询中对URI查询中的页面信息进行编码是解决此问题的标准方法。 但是这种方法确实有一个缺点 –它切入了用于实际查询的查询空间 / foopage 1size 10 控制器 现在对于实现– 用于分页的Spring MVC控制器非常简单 RequestMapping( value admin/foo,params { page, size },method GET ) ResponseBody public List Foo findPaginated( RequestParam( page ) int page, RequestParam( size ) int size, UriComponentsBuilder uriBuilder, HttpServletResponse response ){Page Foo resultPage service.findPaginated( page, size );if( page resultPage.getTotalPages() ){throw new ResourceNotFoundException();}eventPublisher.publishEvent( new PaginatedResultsRetrievedEvent Foo ( Foo.class, uriBuilder, response, page, resultPage.getTotalPages(), size ) );return resultPage.getContent(); } 这两个查询参数在请求映射中定义并通过RequestParam注入到控制器方法中 HTTP响应和Spring UriComponentsBuilder注入到Controller方法中以包含在事件中因为实现可发现性将需要两者。 REST分页的可发现性 在分页的范围内满足REST的HATEOAS约束意味着使API的客户端能够基于导航中的当前页面发现下一页和上一页。 为此将使用Link HTTP标头以及官方的 “ next ”“ prev ”“ first ”和“ last ”链接关系类型。 在REST中可发现性是一个横切关注点 不仅适用于特定操作还适用于操作类型。 例如每次创建资源时客户端应可发现该资源的URI。 由于此要求与ANY资源的创建有关因此应分开处理并与主Controller流分离。 使用Spring这种分离是通过事件来实现的 如上一篇文章中已充分讨论的那样该文章侧重于RESTful服务的可发现性。 对于分页在控制器中触发了事件– PaginatedResultsRetrievedEvent –并且在此事件的侦听器中实现了可发现性 void addLinkHeaderOnPagedResourceRetrieval( UriComponentsBuilder uriBuilder, HttpServletResponse response, Class clazz, int page, int totalPages, int size ){String resourceName clazz.getSimpleName().toString().toLowerCase();uriBuilder.path( /admin/ resourceName );StringBuilder linkHeader new StringBuilder();if( hasNextPage( page, totalPages ) ){String uriNextPage constructNextPageUri( uriBuilder, page, size );linkHeader.append( createLinkHeader( uriForNextPage, REL_NEXT ) );}if( hasPreviousPage( page ) ){String uriPrevPage constructPrevPageUri( uriBuilder, page, size );appendCommaIfNecessary( linkHeader );linkHeader.append( createLinkHeader( uriForPrevPage, REL_PREV ) );}if( hasFirstPage( page ) ){String uriFirstPage constructFirstPageUri( uriBuilder, size );appendCommaIfNecessary( linkHeader );linkHeader.append( createLinkHeader( uriForFirstPage, REL_FIRST ) );}if( hasLastPage( page, totalPages ) ){String uriLastPage constructLastPageUri( uriBuilder, totalPages, size );appendCommaIfNecessary( linkHeader );linkHeader.append( createLinkHeader( uriForLastPage, REL_LAST ) );}response.addHeader( HttpConstants.LINK_HEADER, linkHeader.toString() ); } 简而言之侦听器逻辑检查导航是否允许下一页上一页第一页和最后一页如果允许则将相关的URI添加到链接HTTP标头中。 它还确保链接关系类型是正确的-“下一个”“上一个”“第一个”和“最后一个”。 这是侦听器的唯一职责 此处是完整代码 。 测试驾驶分页 分页和可发现性的主要逻辑都应由小型集中的集成测试广泛涵盖 与上一篇文章一样 使用保证库来使用REST服务并验证结果。 这些是分页集成测试的一些示例 要获得完整的测试套件请查看github项目本文结尾的链接 Test public void whenResourcesAreRetrievedPaged_then200IsReceived(){Response response givenAuth().get( paths.getFooURL() ?page1size10 );assertThat( response.getStatusCode(), is( 200 ) ); } Test public void whenPageOfResourcesAreRetrievedOutOfBounds_then404IsReceived(){Response response givenAuth().get( paths.getFooURL() ?page randomNumeric( 5 ) size10 );assertThat( response.getStatusCode(), is( 404 ) ); } Test public void givenResourcesExist_whenFirstPageIsRetrieved_thenPageContainsResources(){restTemplate.createResource();Response response givenAuth().get( paths.getFooURL() ?page1size10 );assertFalse( response.body().as( List.class ).isEmpty() ); } 测试驾驶分页可发现性 测试分页的可发现性相对简单尽管有很多基础要讲。 测试的重点是导航中当前页面的位置以及应该从每个位置发现的不同URI Test public void whenFirstPageOfResourcesAreRetrieved_thenSecondPageIsNext(){Response response givenAuth().get( paths.getFooURL()?page0size10 );String uriToNextPage extractURIByRel( response.getHeader( LINK ), REL_NEXT );assertEquals( paths.getFooURL()?page1size10, uriToNextPage ); } Test public void whenFirstPageOfResourcesAreRetrieved_thenNoPreviousPage(){Response response givenAuth().get( paths.getFooURL()?page0size10 );String uriToPrevPage extractURIByRel( response.getHeader( LINK ), REL_PREV );assertNull( uriToPrevPage ); } Test public void whenSecondPageOfResourcesAreRetrieved_thenFirstPageIsPrevious(){Response response givenAuth().get( paths.getFooURL()?page1size10 );String uriToPrevPage extractURIByRel( response.getHeader( LINK ), REL_PREV );assertEquals( paths.getFooURL()?page0size10, uriToPrevPage ); } Test public void whenLastPageOfResourcesIsRetrieved_thenNoNextPageIsDiscoverable(){Response first givenAuth().get( paths.getFooURL()?page0size10 );String uriToLastPage extractURIByRel( first.getHeader( LINK ), REL_LAST );Response response givenAuth().get( uriToLastPage );String uriToNextPage extractURIByRel( response.getHeader( LINK ), REL_NEXT );assertNull( uriToNextPage ); } 这些只是使用RESTful服务的集成测试的几个示例。 获取所有资源 关于分页和可发现性的同一主题必须选择是否允许客户端一次检索系统中的所有资源 或者客户端必须要求对它们进行分页。 如果选择了客户端无法通过单个请求检索所有资源并且分页不是可选的而是必需的则可以使用几个选项来响应对“获取所有”请求 。 一种选择是返回404 未找到 并使用Link标头使第一页可被发现 链接 http// localhost8080 / rest / api / admin / foopage 0size 10; rel “ first ”http// localhost8080 / rest / api / admin / foopage 103size 10; rel “ 最后一个 “ 另一个选择是将重定向– 303 请参阅其他 返回到分页的第一页。 第三种选择是为GET请求返回405 不允许使用方法 。 带有范围HTTP标头的REST Paginag 分页的一种相对不同的方法是使用HTTP Range标头 – RangeContent-RangeIf-RangeAccept-Ranges –和HTTP状态码 – 206 部分内容 413 请求实体太大 416 请求的范围无法满足 。 关于这种方法的一种观点是HTTP Range扩展不是用于分页的它们应该由服务器而不是由应用程序管理。 尽管在技术上不像本文中讨论的实现那样普遍但是基于HTTP Range标头扩展实现分页还是可行的。 结论 本文介绍了使用Spring在RESTful服务中分页的实现并讨论了如何实现和测试可发现性。 有关分页的完整实现请查看github项目。 如果您读完本文 则应 在Twitter上关注我 。 参考 Baeldung博客中我们JCG合作伙伴 Eugen Paraschiv的SpringREST分页 翻译自: https://www.javacodegeeks.com/2012/01/rest-pagination-in-spring.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/86472.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

仿珠宝首饰网站开发网站空间买卖

作者:诗颖摘要:日前,英伟达 Developer Blog 上一篇博文详细陈述了英伟达 Volta Tensor Core GPU 在深度学习社群取得的巨大突破,以及种种突破背后的技术细节。2017 年 5 月,在 GTC 2017 上,英伟达 CEO 黄仁…

手机建设中网站首页女性pose拍照

dump文件 dump文件记录当前程序运行某一时刻的信息,包括内存,线程,线程栈,变量等等,相当于调试程序时运行到某个断点上,把程序运行的信息记录下来。可以通过Windbg打开dump,查看程序运行的变量…

站长工具综合查询ip大良外贸网站设计

1、前言 之前写了一篇文章关于 flutter 初体验的一篇,https://www.cnblogs.com/niceyoo/p/9240359.html,当时一顿骚操作,然后程序就跑起来了。 隔了好一段时间,换了个电脑,重新装了个AndroidStudio,继续搭建…

中小企业公共服务平台网站建设seo诊断报告示例

假设有这样的一种情况,在两个组件中。一个组件【A】主要是比如说放表格数据,而另外一个组件【B】是专门用来向组件A的表格添加数据的表单。这个时候就是两个兄弟组件之间传递数据了。首先想到的是使用兄弟组件传递数据的方法: 新建一个中间件…

网站模板怎么修改成可视化西部数码WordPress开启伪静态

大家好呀,美赛开赛还有四天的时间,今天给大家带来的是美赛论文写作时非常实用的一个小技巧——快速输入任何复杂公式。 相信很多小伙伴在论文写作的时候都有一个小烦恼,那就是在面对比较复杂的公式的时候,应该怎么进行快速输入呢…

注册企业网站网页制作网站建设实战大全

文章目录 MySQL完成主从复制教程准备:原理:步骤: 推荐文章 MySQL完成主从复制教程 主从复制(也称 AB 复制)就是将一个服务器(主服务器)的数据复制到一个或多个MySQL数据库服务器(从…

swoole怎么做直播网站建网站的公司广州

Win10系统自带输入法怎么设置?许多用户在使用电脑的时候,都非常习惯使用电脑自带的输入法,但是不少用户在某些时候也需要使用到第三方的输入法软件,然后许多用户在使用的就非常的不方便,想把自带的输入法设置成默认的输…

网站开发用什么框架房地产网站策划

中介变量( Mediator) 是一个重要的统计概念,如果自变量X通过某一变量M对因变量Y产生一定影响,则称M为X和Y的中介变量。研究中介作用的目的是在已知X和Y关系的基础上,探索产生这个关系的内部作用机制。在这个过程中可以把原有的关于同一现象的…

站嗨免费建站e建网官网

capitalize() 把字符串的第一个字符改为大写casefold() 把整个字符串的所有字符改为小写center(width) 将字符串居中,并使用空格填充至长度width的新字符串count(sub[,start[,end]]) 返回sub在字符串里边出现的次数,start和end参数表示范围&#xff…

asp做网站用什么写脚本WordPress下级

今日任务: 977 有序数组的平方209 长度最小的子数组59 螺旋矩阵Ⅱ 977 有序数组的平方 题目链接:https://leetcode.cn/problems/squares-of-a-sorted-array/ 双指针问题,以及数组本身时有序的; 思路: 左、右两个…

网站建设商城模板下载中国室内设计师联盟

目录前言【1】定时处理方法1、定时的方法:2、定时和计数器【2】8253计数/定时器1、特点:2、芯片引脚以及电路:3、连接方式:4、工作原理:5、寄存器配置a、初始化操作(三个通道单独初始化)b、读出…

一个网站绑定多个域名信用渭南网站建设

1.汇编语言的概念 汇编语言是一种低级编程语言,它与计算机的机器语言非常接近,但比机器语言更易于人类阅读和理解。汇编语言是用一系列的助记符来表示机器语言的操作码和操作数。每种计算机体系结构(如x86、ARM等)都有自己的汇编语…

网站后期维护费用德阳做网站

参考 包含: 1.层级的计算、2.训练的整体流程、3.tensorboard画图、4.保存/使用模型、5.总体代码(含详细注释) 1. 层级的计算 如上图,mnist手写数字识别的训练集提供的图片是 28 * 28 * 1的手写图像,初始识别的时候,并不知道一次要训练多少个数据,因此输入的规模为 [None, 784].…

聊城网站制作价格浙江嘉兴网站建设

1、用于存放声明的头文件 #ifndef __SEP__LIST__ #define __SEP__LIST__#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <assert.h>#define MAX_SIZE 10 //使顺序表中可以插入的数据是可以很方便调整的 typedef int DataType;typede…

邢台优化网站排名周村区住房和城乡建设厅网站

什么是α射线、β射线、γ射线 https://www.sohu.com/a/230945619_1001247211、α射线 放射性核素发生衰变时放出α粒子&#xff0c;产生α射线。α粒子是一个高速运动的氦原子核。对于天然放射系列的核素放出α粒子的能量一般在4&#xff5e;8兆电子伏(MeV)范围&#xff0c;初…

一键制作单页网站小吃培训去哪里学最好

OSI七层模型 和 TCP/IP四层模型 数据传输单位、对应的设备 物理层&#xff1a;网线 数据链路层&#xff1a;网卡、网桥、交换机 网路层&#xff1a;路由器、网关 网卡的作用 网卡(Network Interface Card, NIC)是计算机上用于连接网络的硬件设备。 网卡是计算机连接网络、传…

网站建设接活appwordpress 安装ssl

文章目录1、Bean的配置1.1、配置方式2、Bean的实例化2.1、构造器实例化2.2、静态工厂方式实例化2.3、实例工厂方式实例化3、Bean的作用域3.1、作用域的种类4、Bean的生命周期5、Bean的装配方式5.1、基于XML的装配5.2、基于Annotation的装配5.3、自动装配1、Bean的配置 1.1、配…

搜索引擎网站建设公司文件怎么添加到wordpress

连锁便利店管理系统对于连锁便利店的运营和管理非常有用。以下是一些常见的用途&#xff1a; 1. 库存管理&#xff1a;连锁便利店通常需要管理多个门店的库存&#xff0c;管理系统可以帮助实时掌握各个门店的库存情况&#xff0c;包括商品数量、进货记录、库存调拨等。这样可以…

知乎 网站建设wordpress简体中文版下载

2023年中职组“网络安全”赛项 云南省竞赛任务书 一、竞赛时间 总计&#xff1a;360分钟 竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A模块 A-1 登录安全加固 180分钟 200分 A-2 本地安全策略配置 A-3 流量完整性保护 A-4 事件监控 A-5 服务加固…

做展示型企业网站平面设计网课平台哪个好

目录 一、平台 二、数据 三、代码 3.1 文件组织结构 3.2 lasDataLoader.py 读取数据 3.3 修改原始模型的通道数量 3.4 lasTrainSS.py【训练】 3.5 lasTestSS.py【预测】 一、平台 Windows 10 GPU RTX 3090 CUDA 11.1 cudnn 8.9.6 Python 3.9 Torch 1.9.1 cu111…