我对jsp和ajax 一直比较困惑, jsp动态网页技术,在服务器端执行,能在网页中显示数据这是一种方式 .
另一种方式是
我打开一个网页(html),加载完成之后,使用js,ajax访问网络得到json数据,使用js操作,在页面中追加元素,显示出来 。也行啊。
是不是说这种方式可以把jsp方式替代掉了?我想知道,一般是怎么使用这两种技术的。是都使用,还是说单独用一个。
举例个例子
第一种方式 :jsp初始化数据,ajax发送异步,进行刷新
假设,我要显示新闻列表界面。
http://localhost:8080/ecampus/getnewslist
controller中有此方法
getNewsList(){
//得到 news的list
//session.set(“newslist”, newslist)
//return “news”
}
然后跳转到了news.jsp 页面中。
在news.jsp界面中,使用jsp:for 标签在新闻div 区域显示session中newslist.
假设 news.jsp中有一个刷新按钮,当点击刷新按钮后,使用ajax,发送网络请求
显示最新的新闻。
第二种方式 :完全不使用jsp,使用js,ajax完成数据读取,显示新闻
假设,我要打开显示新闻界面。
http://localhost:8080/ecampus/news.html
然后跳转到了news.html 页面中。
在news.html界面中,事先留出一个div用于显示新闻的。
在news.html加载完成后,调用使用js,发送ajax请求,得到数据后,解析,并显示到div上。
假设 news.html中有一个刷新按钮,当点击刷新按钮后,使用ajax,发送网络请求
显示最新的新闻。
这种方式也行。
哪种方式更好一些呢?一般采用哪种方式?
我能想到的就是, 使用jsp,速度应该会快很多,而采用第二种方式 ,因为js,ajax,显示数据,都是在客户端执行的,速度应该会慢。。
一般应该是采用第一种方式吧。
根据上面的问题,我的看法如下:
一.ajax的优点:
1.开发过程中前端与后端脱离,交互通过JSON传输来实现
2.跨平台能力更强,依托于浏览器的支持
3.使后台数据接口能够得到复用
二.ajax的缺点:
1.开发难度大,考虑浏览器的兼容性
2.页面请求过多
3.属于后加载,无法被爬虫爬到
4.接口代码需要新增很多
5.无法直接显示java实体类对象,需要转换为json格式
三.jsp的优点:
1.可被爬虫爬到
2.减少请求次数
3.不用考虑浏览器的兼容性
四.jsp的缺点:
1.增大了服务器的压力
2.前端与后端未脱离,拖慢开发进度
3.过于依赖java运行环境
4.复用较低。
纯Html+Ajax和JSP两者对比的个人理解
最近写个人web,用jsp+servlet做,突然想到一个问题:html+ajax似乎和jsp实现效果一样:那么,两者到底有什么区别呢? 这里参考老猿的一段话: 全站ajax会维护大量的js代码,如何 ...
Spring security csrf实现前端纯html+ajax
spring security集成csrf进行post等请求时,为了防止csrf攻击,需要获取token才能访问 因此需要添加
html+Ajax和JSP的比较
1.有人说JSP会泄露源码(可能会有一些代码痕迹,但肯定没啥大事)2.又说,Ajax是为了分离前后台,让控制部分在前台处理,降低代码耦合度,后台只相当于服务. 3.能够让前台移植,降低后期维护成本.纯 ...
利用ajax向jsp传输数据
ajax代码 var obtn=document.getElementsByTagName('input')[0]; obtn.οnclick=function () { var xhr=null; ...
AJAX的工作原理及其优缺点
1.什么是AJAX?AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术.它使用:使用XHTML ...
什么是ajax,ajax原理是什么 ,优缺点是什么
AJAX工作原理及其优缺点 1.什么是AJAX?AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页 ...
Ajax的工作原理以及优缺点
Ajax的工作原理 : 相当于在客户端与服务端之间加了一个抽象层(Ajax引擎),使用户请求和服务器响应异步化,并不是所有的请求都提交给服务器,像一些数据验证和数据处理 都交给Ajax引擎来完成,只有 ...
HTML实现包含公共部分:通过ECMA6的模块化,纯前端实现类似jsp:include的功能
以前一直是用 jsp:include 的方式来引入 html 头部的公共部分 php也有类似的方式 但以上两种,个人感觉都并不纯粹,本着折腾的精神,优化原有代码,解耦合 使用 ECMA6 的模块化方式 ...
ajax +jsp+iframe无刷新上传文件[转]
http://hi.baidu.com/zj360202/blog/item/f23e3711f929c774cb80c475.html ajax jsp 无刷新上传文件 2009-10-26 16: ...
随机推荐
NSIS对话框单位造成的控件移位问题
在使用NSIS脚本开发安装卸载程序,使用自定义的nsdialog控件.发现在小部分系统上安装时,一些控件会消失,或者挪位.于是排除问题,看看这些控件的为位置和坐标,发现基本上是使用了对话框单位的控件, ...
VS中的路径宏 vc++中OutDir、ProjectDir、SolutionDir各种路径
原文链接:http://www.cnblogs.com/lidabo/archive/2012/05/29/2524170.html 说明 $(RemoteMachine) 设置为“调试”属性页上“远 ...
C++基础知识之vector
vector容器类型:vector容器是一个模板类,可以存放任何类型的对象(但必须是同一类对象).vector对象可以在运行时高效地添加元素,并且vector中元素是连续存储的.vector的构造 函 ...
Java多线程死锁的产生实例
死锁产生的四个必要条件: (1) 互斥条件:一个资源每次只能被一个进程使用.(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放.(3) 不剥夺条件:进程已获得的资源,在末使用完 ...
STL —— STL六大组件
注:以下内容摘自 http://blog.csdn.net/byxdaz/article/details/4633826 STL六大组件 容器(Container) 算法(Algorithm) 迭代器 ...
Compiler ,Interpreter, Linker
https://en.wikipedia.org/wiki/Interpreter_(computing) https://en.wikipedia.org/wiki/Compiler https:/ ...
《TCP/IP具体解释卷2:实现》笔记--4种不同类型的mbuf
mbuf的主要用途是保存子进程和网络接口间互相传递的用户数据.但mbuf也用于保存其它各种数据:源于目的地址.插口 选项等等. 以下介绍我们要遇到的四种类型的mbuf,它们根据在成员m_flag中填写 ...
Node.js初探之GET方式传输
Node.js初探之GET方式传输 例子:form用GET方法向后台传东西 html文件:
Mac下搭建solr搜索引擎与PHP扩展开发(上)
首先需要安装jdk,前往 https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html 自 ...