Servlet、SpringMVC、Struts2对请求-响应模式实现

从整个B/S程序的运行结构来看,J2EE的表示层解决方案实际上是对“请求-响应”模式的一种实现。既然谓之“请求-响应”也就势必存在着两大沟通角色: 请求对象和响应对象。Servlet、SpringMVC、Struts2对请求-响应的实现是分别基于参数-参数模式、参数返回值、和POJO模式的,由于这两大角色的承载载体和编程语言实现基础都不同,因此三种模式的可谓风格迥异。

参数-参数模式 参数-返回值模式 POJO模式
请求方 方法参数 方法参数 属性变量
响应方 方法参数 返回值 属性变量

 【参数-参数模式】

Servlet对象是运行在行为模式(只有一系列方法的定义,而不包含属性的定义),在Servlet中请求的内容和响应的内容分别被封装在HttpServletRequest对象中和HttpServletResponse对象中,也就是说请求和响应均存在于方法的参数列表中,因此Servlet对象又叫“无状态对象”。这
里实际上有一点“数据与行为分离”的意味。也就是说,在Servlet处理请求的过程中,其实也是Servlet中响应方法内部的逻辑执行过程中,如果需
要处理请求数据或者返回数据,那么我们需要和HttpServletRequest打交道;如果需要处理执行完毕之后的响应结果,那么我们需要和
HttpServletResponse打交道。 基于这种模式的请求-响应模式称为参数-参数模式。参数-参数模式是一种最为基础的请求响应实现机制,也是底层规范不得不采用的一种机制。也就是无论参数-返回值、POJO模式的实现都是依赖于依赖于参数-参数模式。

【参数-返回值模式】

    而在SpringMVC的Controller使用的是使用参数-返回值实现模式,参数-返回值模式是一种最为直观的请求-响应实现模式,SpringMVC中对于Controller的定义如下:

        方
法的参数(email和password)被视作是Http请求参数的概括。而在这里,它们已经被SpringMVC的框架有效处理并屏蔽了内在的处理细
节,呈现出来的是与请求参数名称一一对应的参数列表。而返回值ModelAndView则表示Http的响应是一个数据与视图的结合体,表示Http的处
理结果。 而方法体本身,再其内部包含了逻辑处理的整个过程

【POJO模式】

最后Struts2对请求-响应的实现是通过POJO对象,请求参数和响应内容全部以POJO内部属性而存在,传统Servlet模式中的禁地Controller中的属性变量被合理利用了起来作为请求处理过程中的数据部分。POJO模式颠覆了前两种实现模式以java类中的方法的语法特性为原型基础进行请求响应的的传统模式。POJO模式是对Servlet模式的一个重大改进。POJO实现模式是一种具有革命性意义的模式,因为它能够把解耦合这样一个观点发挥到极致。从面向对象的角度来看,POJO模式无疑也是所有程序员所追求的一个目标。这也就是Struts2那么多年来经久不衰的一个重要原因。

三种不同实现模式存在着一些分歧,他们之间的主要分歧在于:不同的实现模式使用了不同的编程元素(方法参数、方法返回值、类的属性)来表达请求-响应模式中不同的逻辑语义。

Servlet、SpringMVC、Struts2对请求-响应模式实现

时间: 2024-10-13 16:20:08

Servlet、SpringMVC、Struts2对请求-响应模式实现的相关文章

请求响应模式

消息传递方式 1.异步方式是一种单向调用,调用者不需要获得响应 2.请求-响应方式即请求方调用服务后,服务立即处理并返回响应结果,不需将消息再次传递. ============================== 3.同步方式即请求方调用服务后,component将处理结果发送给另一个外部服务处理,并将处理结果反方向返回. 4.异步请求-响应方式即请求方调用服务后不需要立即获得返回结果,component将请求发送给其他外围系统处理(可能有多个),全部处理完毕后通过指定的异步应答Router返回

WCF消息交换模式之请求-响应模式

WCF的消息交换模式(MEP)有三种:请求/响应.单向模式和双工模式.WCF的默认MEP是请求/响应模式. 请求/响应模式操作签名代码如下,无需指定模式,默认就是. [OperationContractAttribute] string Hello(string greeting,string mesg); [OperationContractAttribute] void SaveMesg(string mesg); 请求/响应模式内容: 客户端可以传递一个或多个参数给服务操作方法,服务操作方

Fiddler-006-修改HTTP请求响应数据

在进行 App 测试时,经常需要修改请求参数,以获得不同的显示效果,以查看相应的页面显示处理.例如:电商购物App中商品都有好几种状态(在售.缺货.暂不销售.下 架等).同时,一般这几种状态均为同一个按钮对应的多种情况,那么测试商品详情时,需要测试按钮在商品不同状态下的显示效果,就需要构建不同状态的商品, 若是多人测试不同的状态下的操作,那么就不能使用同一件商品同时进行测试,因为测试时,需要修改商品的状态,那么多人测试时会有影响.此时,测试页面显示 的朋友,则可以通过修改获取商品详情的HTTP请

BizTalk开发系列(三十)单向端口实现请求-响应

BizTalk本质上是异步的消息处理引擎.BizTalk的请求与响应模式是基于异步之上的同步消息交换.消息引擎通过消息的扩展架构链接许 多异步消息,消息的相关集关联请求与响应消息.例如,客户端发送一个SOAP请求到BizTalk SOAP适配器.连接该Web Service的BizTalk Orchestration接收处理消息.并返回一个SOAP响应消息.对于客户端程序来说是一个同步的SOAP请求.但在引擎内部则是通过并联交换许多 的异步消息来实现. 以下是请求-响应模式中的五个架构属性: B

JSP内置对象——九大内置对象简介与四种作用域范围以及Web程序的请求和响应模式

最近在学习JSP相关基础知识,我们都知道JSP当中存在一组不使用new关键字就可以在脚本和表达式中使用的对象,在Web开发中经常使用.为了能更好的理解这些对象,在此对JSP内置对象作一些归纳. 目录: JSP内置对象——九大内置对象简介与四种作用域范围以及Web程序的请求和响应模式 JSP内置对象——out(待更新) JSP内置对象——request/response(待更新) JSP内置对象——session(待更新) JSP内置对象——application(待更新) JSP内置对象——其他

TC608——Servlet中的Request和response请求响应技术

request和response author:lxy 1.了解request和response request:请求对象 response:响应对象 请求和响应对象由服务器创建,每次请求都创建新的请求响应对象,响应结束,对象自动消失. 作用: request可以处理所有的Http请求,----获取Http请求信息 response可以处理所有的Http响应,----设置Http响应信息 补充:请求消息由 请求行.请求头.请求内容组成 2.request和response体系介绍 |-Servl

springMVC带参数请求重定向

SpirngMVC返回逻辑视图名 可以分下面几种情况: 1. servlet进行请求转发,返回到jsp页面,如  return "index.jsp" ; 2. servlet 返回结果,让请求 重定向到某个jsp页面 ,此时servlet 返回语句类似:  return  " redirect : index.jsp "; 3. servlet 的返回结果是 请求另外一个servlet   此时servlet 返回语句类似:  return  " red

Servlet(简介,请求参数,页面跳转,生命周期,创建,配置,ServletContext,线程)

1.Servlet简介 servlet是java servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序, 主要功能在于交互式浏览和修改数据,生成动态的web内容 服务端运行的小程序:MVC(Model view Controller) servlet运行于支持Java的应用服务器中.从现实上讲,Servlet可以响应任何类型的请求,但 绝大多数情况下servlet只用来扩展基于http协议的web服务器 servlet:可以接受客户端的任何请求 servlet编程需要使

【报文】理解HTTP协议的Request/Response(请求响应)模型

[报文]理解HTTP协议的Request/Response(请求响应)模型 系列目录 [简介]"请求/响应"模型 http://www.cnblogs.com/engraver-lxw/p/7550514.html [原理]理解HTTP协议的Request/Response(请求响应)模型 http://www.cnblogs.com/engraver-lxw/p/7550691.html [报文]理解HTTP协议的Request/Response(请求响应)模型--当前 http:/