Struts2---Result(传统Web应用程序与Ajax应用程序的异同)
看了很久的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应用程序的异同)的更多相关文章
- 来了解一下Ajax是什么?Ajax的原理?Ajax与传统Web比较?Ajax的优缺点?Ajax的Post与Get比较
一.什么是Ajax Ajax(Asynchronous Java and XML的缩写)是一种异步请求数据的web开发技术,对于改善用户的体验和页面性能很有帮助.简单地说,在不需要重新刷新页面的情况下 ...
- Ajax与传统Web开发的区别
基本概念 1.1,Ajax AJAX:即“Asynchronous Javascript And XML”(异步的JavaScript和XML),是指一种创建交互式网页应用的网页开发技术,尤其是在一种 ...
- 【Ajax 1】Ajax与传统Web开发的区别
导读:从用户体验度的角度来说,利用Ajax进行开发的网站,其体验度高于利用传统Web开发技术,那么,是什么因素导致了这一现象呢?难道说Ajax开发,就一定优于传统Web技术吗?本篇文章,将主要介绍Aj ...
- Blazor VS 传统Web应用程序
原文作者: Christian Findlay 原文链接: https://christianfindlay.com/2020/07/09/blazor-vs-traditional-web-apps ...
- 【ASP.NET MVC 5】第27章 Web API与单页应用程序
注:<精通ASP.NET MVC 3框架>受到了出版社和广大读者的充分肯定,这让本人深感欣慰.目前该书的第4版不日即将出版,现在又已开始第5版的翻译,这里先贴出该书的最后一章译稿,仅供大家 ...
- Struts2中实现Web项目的初始化工作
Struts2中实现Web项目的初始化工作 注:通常web系统在启动时需要做一些初始化的工作,比如初始化系统全局变量,加载自定义配置文件,启动定时任务等. 一.在Struts中实现系统的初始化工作 ...
- X5的UI部分和传统Web页面开发的差异
http://doc.wex5.com/different-with-std-web-ui/#1 X5的UI部分和传统Web页面开发的差异 WeX5是跨端移动开发框架,BeX5是基于WeX5的企业快速 ...
- Python搭建Web服务器,与Ajax交互,接收处理Get和Post请求的简易结构
用python搭建web服务器,与ajax交互,接收处理Get和Post请求:简单实用,没有用框架,适用于简单需求,更多功能可进行扩展. python有自带模块BaseHTTPServer.CGIHT ...
- 构建现代Web应用时究竟是选择传统web应用还是SPA
在大前端盛行的今天,似乎前后端分离的开发模式才是大势所趋,而SPA的概念更是应运而生.现在随便构建一个web应用程序如果你不是使用SPA的话,就会感觉有点low,但是真的是这样吗?今天这篇文章我们就来 ...
随机推荐
- Python -- OOP高级 -- 元类
type()函数既可以返回一个对象的类型,又可以创建出新的类型 def fn(self, name="world"): print("Hello, %s!" % ...
- Oracle新建用户赋只读某几张表的权限
create user JSETI_WZQ identified by abcdef; -- 假设abcdef是密码 grant connect,resource to JSETI_WZQ; gran ...
- Warning: Cannot modify header information - headers already sent by ... functions_general.php on line 45
摘自:有用到 http://blog.csdn.net/besily/article/details/5396268 PHP错误:Warning: Cannot modify header infor ...
- 性能更好的js动画实现方式---requestAnimationFrame
用js来实现动画,我们一般是借助setTimeout或setInterval这两个函数,css3动画出来后,我们又可以使用css3来实现动画了,而且性能和流畅度也得到了很大的提升.但是css3动画还是 ...
- codeforces 369 div2 C dp
http://codeforces.com/contest/711 C. Coloring Trees time limit per test 2 seconds memory limit per t ...
- 如何play billard
怎样打台球?(一) 首先,要打好台球,必须要做好准备:1.要有自己的专杆,每日用不同杆的人,台球水平必定一般.2.精神状态度要好,睡眠不足或心里有事儿,不要打台球.记住,台球是专注度要求极高的运动.3 ...
- audio,video标签
<html><head lang="en"> <meta charset="UTF-8"> <title>< ...
- C#使用FFmpeg 将视频格式转换成Gif图片示例
根据EFmpeg封装的视频转换gif工具:https://my.oschina.net/tianma3798/blog/825317 一.本次使用参数说明 /* * 参数说明: * -i 源文件位置 ...
- c#获取新浪微博登录cookie
用新浪微博api收集数据有诸多限制,每小时只能调用官方api函数150次,认证也很麻烦.因此想通过爬网页的方式来收集数据.访问新浪微博用户网页首先需要登录,登录获取cookie后可直接获取网页数据,无 ...
- php 自动发送邮件的实现
原文: http://www.cnblogs.com/zichi/p/4058055.html http://www.jb51.net/article/32479.htm 效果: 访问: test.p ...