看了很久的struts,在视频和书的引导下,慢慢明白了点,推荐:《struts 2 in action》和马士兵的视频

今天看结果这块时,由于还没有学过ajax等,不太明白,但是必须弄懂嗒,现在好像明白了些许。

下面先看传统Web应用程序向客户返回完整的HTML页面响应(图1),然后是Ajax应用程序(图2),有的Ajax应用程序需要HTML片段作为相应,而另一些期望XML或者JSON响应。Ajax响应的内容可以由很多不同的格式,但是它们都有一个明显的共同点——不想要一个完整的HTML页面。

图1传统Web应用程序向客户返回完整的HTML页面响应

图2 Ajax应用程序只期望在响应中得到数据,例如JSON或者XML

两者的区别如下:

1.传统的Web应用程序:浏览器客户传入请求,表单字段的值被框架自动地转移到对应的属性上,并放入ValueStack中,action会转向一个结果,这个结果使用预先准备好的数据构建并呈现一个完整的HTML或JSP页面,其中JSP或HTML在标签内可以使用指向ValueStack上一个属性的OGNL表达式取出属性,最后将HTML页面相应给客户。

2.Ajax应用程序:被JavaScript客户端应用程序提交的Ajax请求会进入框架并且会触发action,然后action会准备数据放在ValueStack上,并且将响应的处理转交给result,这个result将ValueStack上的数据序列化为JSON,并且把它送回客户端。在客户端,一个回调函数接受JSON,从这些数据生成一个JavaScript对象,将这个JavaScript对象传入一个动态更新页面的方法。

传统的Web应用程序最后得到一个新的完整的页面,浏览器客户会重新呈现整个HTML页面。而Ajax应用程序不请求完整的HTML页面,它们只需要数据。当Ajax客户接收到响应时,会仔细检查序列化为XML或者JSON的数据,使用这些数据为当前浏览器页面上受影响的区域进行有目的的更新。

Struts2---Result(传统Web应用程序与Ajax应用程序的异同)的更多相关文章

  1. 来了解一下Ajax是什么?Ajax的原理?Ajax与传统Web比较?Ajax的优缺点?Ajax的Post与Get比较

    一.什么是Ajax Ajax(Asynchronous Java and XML的缩写)是一种异步请求数据的web开发技术,对于改善用户的体验和页面性能很有帮助.简单地说,在不需要重新刷新页面的情况下 ...

  2. Ajax与传统Web开发的区别

    基本概念 1.1,Ajax AJAX:即“Asynchronous Javascript And XML”(异步的JavaScript和XML),是指一种创建交互式网页应用的网页开发技术,尤其是在一种 ...

  3. 【Ajax 1】Ajax与传统Web开发的区别

    导读:从用户体验度的角度来说,利用Ajax进行开发的网站,其体验度高于利用传统Web开发技术,那么,是什么因素导致了这一现象呢?难道说Ajax开发,就一定优于传统Web技术吗?本篇文章,将主要介绍Aj ...

  4. Blazor VS 传统Web应用程序

    原文作者: Christian Findlay 原文链接: https://christianfindlay.com/2020/07/09/blazor-vs-traditional-web-apps ...

  5. 【ASP.NET MVC 5】第27章 Web API与单页应用程序

    注:<精通ASP.NET MVC 3框架>受到了出版社和广大读者的充分肯定,这让本人深感欣慰.目前该书的第4版不日即将出版,现在又已开始第5版的翻译,这里先贴出该书的最后一章译稿,仅供大家 ...

  6. Struts2中实现Web项目的初始化工作

    Struts2中实现Web项目的初始化工作 注:通常web系统在启动时需要做一些初始化的工作,比如初始化系统全局变量,加载自定义配置文件,启动定时任务等.  一.在Struts中实现系统的初始化工作 ...

  7. X5的UI部分和传统Web页面开发的差异

    http://doc.wex5.com/different-with-std-web-ui/#1 X5的UI部分和传统Web页面开发的差异 WeX5是跨端移动开发框架,BeX5是基于WeX5的企业快速 ...

  8. Python搭建Web服务器,与Ajax交互,接收处理Get和Post请求的简易结构

    用python搭建web服务器,与ajax交互,接收处理Get和Post请求:简单实用,没有用框架,适用于简单需求,更多功能可进行扩展. python有自带模块BaseHTTPServer.CGIHT ...

  9. 构建现代Web应用时究竟是选择传统web应用还是SPA

    在大前端盛行的今天,似乎前后端分离的开发模式才是大势所趋,而SPA的概念更是应运而生.现在随便构建一个web应用程序如果你不是使用SPA的话,就会感觉有点low,但是真的是这样吗?今天这篇文章我们就来 ...

随机推荐

  1. Linux学习 -- Shell编程 -- 字符截取命令

    cut字段提取命令 cut [选项] 文件名 -f 列号: -d 分隔符: 局限性:空格为分隔符时不适用 printf命令 printf '输出类型输出格式' 输出内容 %s, %i, %f \a, ...

  2. 二叉树,平衡树,红黑树,B~/B+树汇总

    二叉查找树(BST),平衡二叉查找树(AVL),红黑树(RBT),B~/B+树(B-tree).这四种树都具备下面几个优势: (1) 都是动态结构.在删除,插入操作的时候,都不需要彻底重建原始的索引树 ...

  3. CodeForces 678C Joty and Chocolate

    简单题. #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> ...

  4. zencart产品详细页面调用数据库显示tags标签

      给商品信息页面添加一些tag关键词标签有利于谷歌的收录,也有利于关键词的SEO,实现这个功能并不难.其实就是给zencart添加一个功能模块, 具体方法是: 1,在mudules目录下面新建一个以 ...

  5. awk 数组排序-- asort 与 asorti

    两者排序区别: asort 是对数组的值进行排序,并且会丢掉原先键值: asorti是对数组的下标进行排序. 数据文件: 12 34 78 90 23 45 1. awk是关联数组.for-in循环输 ...

  6. postfix+dovecot配置多域名邮件服务器

    mail邮局系统的MX(邮件交换)记录配置,以便收发邮件.(MX记录,是邮件交换记录,它指向一个邮件服务器,用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器,如果没有做域名解析,邮局不能正 ...

  7. Vold工作流程分析学习

    一 Vold工作机制分析 vold进程:管理和控制Android平台外部存储设备,包括SD插拨.挂载.卸载.格式化等: vold进程接收来自内核的外部设备消息. Vold框架图如下: Vold接收来自 ...

  8. 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)

    众所周知,通过PackageManager可以获取手机端已安装的apk文件的信息,具体代码如下 PackageManager packageManager = this.getPackageManag ...

  9. UESTC 1222 Sudoku

    爆搜即可 /* *********************************************** author : email :523689985@qq.com created tim ...

  10. MySQL5.7绿色版安装

    1. 下载MySQL 5.7,地址:http://dev.mysql.com/downloads/mysql/ (选择32位或者64位版本需根据自身PC情况) 2. 下载后解压,比如我的目录结构是: ...