常见的REST有
基于>D:\USERS\hupeng>ftp/
将文件传送到运行 FTP 服务器服务(经常称为后台程序)的计算机以及将文件从该计算机
传出。可以交互使用 Ftp。
FTP [-v] [-d] [-i] [-n] [-g] [-s:filename] [-a] [-A] [-x:sendbuffer] [-r:recvbuf
fer] [-b:asyncbuffers] [-w:windowsize] [host]
-v 禁止显示远程服务器响应。
-n 禁止在初始连接时自动登录。
-i 关闭多文件传输过程中的
交互式提示。
-d 启用调试。
-g 禁用文件名通配(请参阅 GLOB 命令)。
-s:filename 指定包含 FTP 命令的文本文件;命令
在 FTP 启动后自动运行。
-a 在绑字数据连接时使用所有本地接口。
-A 匿名登录。
-x:send sockbuf 覆盖默认的 SO_SNDBUF 大小 8192。
-r:recv sockbuf 覆盖默认的 SO_RCVBUF 大小 8192。
-b:async count 覆盖默认的异步计数 3
-w:windowsize 覆盖默认的传输缓冲区大小 65535。
host 指定主机名称或要连接到的远程主机
的 IP 地址。
注意:
- mget 和 mput 命令将 y/n/q 视为 yes/no/quit。
- 使用 Ctrl-C 中止命令。
javaxwsrsextProviders 是JAX-RS 20定义的一种辅助接口,其实现类用于辅助REST框架完成过滤和读写拦截的功能,可以使用@Provider 注解标注这些类。Providers接口一共定义了四个方法,分别用来获取MessageBodyReader,MessageBodyWriter,ExceptionMapper,ContextResolver
Jersey 之所以支持那么多中响应实体的传输格式,是因为其底层实体Providers具备的对不同格式的处理能力。Jersey内部提供了丰富的MessageBodyReader和MessageBodyWriter 接口的实现类,用于处理不同格式的表述
如上图,请求流程中存在三种角色,分别是:用户,REST客户端和REST服务器,请求始于请求的发送,止于调用Resonse的readEntity()方法
(1)用户请求提交数据,客户端接收请求,进入第一个扩展点:客户端请求过滤器 ClientRequestFilter 的filter()方法
(2)请求处理过滤完毕后,流程进入第二个扩展点:客户端写拦截器WriterInterceptor实现类的aroundWriterTo() 方法,实现对客户端序列化 *** 作的拦截
(3)客户端消息体写处理器MessageBodyWriter 执行序列化,流程从客户端过渡到服务器端
(4)服务器接收请求,流程进入第三个扩展点:服务器前置请求过滤器ContainerRequestFilter实现类 的filter()方法
(5)过滤器处理完毕后,服务器根据请求匹配资源方法,如果匹配到相应的资源方法,流程进入第四个扩展点:服务器后置请求过滤器ContainerRequestFilter 实现类 的filter() 方法
(6)后置请求过滤器处理完毕后,力促进入第五个扩展点:服务器读拦截器ReaderInterceptor实现类 的aroundReadFrom() 方法,拦截服务器端反序列化 *** 作
(7)服务器消息体读处理器MessageBodyReader 完成对客户端数据流的反序列化,服务器执行匹配的资源方法
(8)REST请求资源的处理完毕后,流程进入第六个扩展点:服务器响应过滤器 ContainerResponseFilter 实现类 的filter() 方法
(9)过滤器处理完毕后,流程进入第七个扩展点:服务器写拦截器WriterInterceptor实现类 的aroundWriterTo() 方法,实现对服务器端序列化到客户端这个 *** 作的拦截
(10)服务器消息体写处理器MessageBodyWriter 执行序列化,流程返回到客户端一侧
(11)客户端接收响应,流程进入第八个扩展点:客户端响应过滤器ClientResponseFilter 实现类 的filter() 方法
(12)过滤处理完毕后,客户端响应实例response 返回到用户一侧,用户执行responsereadEntity(),流程进入第九个扩展点:客户端拦截器ReaderInterceptor实现类 的aroundReadFrom() 方法,对客户端反序列化进行拦截
(13)客服端消息体读处理器MessageBodyReader 执行反序列化,将Java类型的对象最终作为readENtity()方法的返回值
JAX-RS-20定义的4种过滤器扩展点接口,供开发者实现其业务逻辑,按请求处理流程的先后顺序为:客户端请求过滤器(ClientRequestFilter) -------> 服务端请求过滤器(ContainerRequestFilter)-------->服务端响应过滤器(ContainerResponseFilter)——>客户端响应过滤器(ClientResponseFilter)
ClientRequestFilter
ClientResponseFilter
ContainerRequestFilter
ContainerResponseFilter
Jersey 内部实现了几个典型应用的拦截器,他们是成对出现的
ReaderInterceptor
WriterInterceptor
编码解码拦截器(ContentEncoder)
优先级的定义使用注解 @Priority ,优先级的值是一个整数值,对于ContainerReauest,PreMatchContainerRequest,ClientRequest 和读写拦截器 采用升序策略,数值越小,优先级越高;对于ContainerResponse和ClientResponse采用降序策略,数值越大,优先级越高
REST是代表状态转移( REpresentational State Transfer)的缩写。 它是分布式超媒体系统的体系结构样式,由Roy Fielding于2000年在他的著名论文中首次提出。与任何其他架构样式一样,REST还具有自己的6个指导约束,如果需要将接口称为RESTful,则必须满足这些约束。 这些原则在下面列出。
REST指导原则
客户端-服务器 —— 通过将用户界面问题与数据存储问题分开,我们提高了用户界面在多个平台上的可移植性,并通过简化服务器组件来提高可伸缩性。
无状态 —— 从客户端到服务器的每个请求都必须包含理解该请求所需的所有信息,并且不能利用服务器上存储的任何上下文。 因此,会话状态完全保留在客户端上。
可缓存 —— 缓存约束要求对请求的响应中的数据被隐式或显式标记为可缓存或不可缓存。 如果响应是可缓存的,则授予客户端缓存以将响应数据重新用于以后的等效请求的权限。
统一的接口 —— 通过将通用的软件工程原理应用于组件接口,可以简化整个系统架构,并提高交互的可见性。 为了获得统一的接口,需要多个体系结构约束来指导组件的行为。 REST由四个接口约束定义:资源标识; 通过表述 *** 纵资源; 自我描述的信息; 并且,超媒体作为应用程序状态的引擎。
分层系统 —— 分层系统样式允许通过限制组件的行为来使体系结构由层次结构层组成,从而使每个组件都无法“看到”与它们交互的直接层。
可定制代码(可选)–—— REST允许通过以applet或脚本的形式下载并执行代码来扩展客户端功能。 通过减少预先实现的功能数量,简化了客户端。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)