Jsp与Servlet区别

SERVLET是SUN早期推出的,其功能比较强劲,体系设计也很先进,只是,它输出HTML语句还是采用了老的CGI方式,是一句一句输出,所以,编写和修改HTML非常不方便。

后来SUN推出了类似于ASP的镶嵌型的JSP,把JSP TAG镶嵌到HTML语句中,这样,就大大简化和方便了网页的设计和修改。

这儿也就产生了一个区别了,SERVLET是往JAVA代码中嵌HTML元素,JSP是往HTML里嵌JAVA代码。呵呵。。。。。。

如果,我们这样嵌来嵌去的话代码肯定是混乱不堪,不容易理解。对于后期的维护将是一大难题!

所以说,jsp比较适合与承担view这个角色。
而servlet比较适合与承担Control这个角色。
理论上讲用servlet来写的东西,都可以用jsp完成。虽然JSP基本上实现了Servlet的功能,但JSP在性能上是无法与Servlet相比的。

这就是我对jsp与servlet的总结,我把网上的一些分散的理解,进行整理的结果。怎么样比较容易理解了吧?

2、因为jsp先生成.java文件,所以速度比servlet慢。

不完全对   jsp的确会先生成.java文件,然后编译成.class文件,但一般当你把你的项目部署到服务器上,在你的jsp不改变的前提下,一般只会第一次访问编译,以后都不会再编译,也就是说只有第一次访问比servlet慢,以后就基本同样的速度。如果有大量的jsp,可以选择预编译。

 

3、servlet在一个生命周期内只会实例化一次。

不是绝对的  这要根据你web.xml中的配置文件,如果同一个servlet对应多个name,那就不止一次了,几个name就实例化几次。

 

4、servlet和struts的action比较类似

你猜的很对   struts中的action就是对servlet的封装,不是类似。

 

5、只用servlet还要写很多html代码,太麻烦,用servlet和jsp也要在jsp中写java代码,只用jsp岂不更简单。

这明显不对   的确jsp就是因为需要在servlet中写大量的html代码才推出的。但只用jsp不是不可以,但坏处是:一、丢失了java语言的最大的优点-面向 对象,在jsp中的java代码都是面向过程,所有的jsp中你看不到一个类。二、给后期维护带来太大的麻烦。软件开发不仅要实现功能,更要设计有弹性的 代码。理想状态下jsp中不出现java代码,全部是标签和脚本语言。当然这是理想状态下。

 

servlet是java代码中嵌套html代码,jsp是html代码中嵌套servlet代码。但本质上却也没太大区别,jsp本质上也是一个servlet。下图说明了这个问题:

 

虽然上文说到jspservlet的明显区别在代码嵌套方面。但我们总是在追求高内聚,低耦合的系统,追求能多次复用并且易于维护的系统,很明显,不论java代码中嵌套大量html或者html中嵌套大量java代码,都给维护造成很大困难,当然也会给开发加大了很大的工作量。所以现在基本不在servlet中写html代码,也尽量少在jsp中写java代码。只让servlet完成控制器(C)的功能,只让jsp完成视图(V)的功能

 

从定义上来讲: 

  servlet是运行在服务器端的Java程序 

  jsp是嵌入html中的Java代码,其本质就是servlet,因为jsp运行时是要转化到servletservice()方法里执行的 

  从用途上来讲:本着MVC的原则 

  一般jsp用做处理页面显示问题 

  servlet用作处理后台应用问题

  jsp适合静态内容多的业务,servlet适合动态操作多的业务。 

  jsp最终要转换成servlet代码执行。

MVC架构中 

  servletcontrol 

  jspview

jsp请求到tomcat---tomcat封装了jsp到servlet实现。

 

所以jsp请求时候,会自动创建session

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值