servlet与jsp的区别 - java - 方帮信
分享
当前位置: 首页 >  > 技术 > 软件开发 > java

servlet与jsp的区别

2018/12/5 17:43:47 浏览

servlet与jsp的区别


servlet是使用java servlet接口(api)运行在web应用服务器上的java程序,其功能十分强大,它不但可以处理http请求中的业务逻辑,而且还可以输出html代码来显示指定页面。而jsp是一种在servlet规范只上的动态网页技术,在jsp页面中,同样可以编写业务逻辑处理http请求,也可以通过html代码来编辑页面,在实现功能上,servlet与jsp貌似相同,是指存在一定的区别,主要表现在以下几个方面:

①角色不同

js页面可以存在html代码与java代码并存的情况,而servlet需要承担客户请求与业务处理的中间角色,只有调用固定的方法才能将动态内容输出为静态html,所以jsp更具有显示层的角色

②编程方法不同

servlet与jsp在编程方法上存在很大的区别,使用servlet开发web应用程序需要遵循Java的标准,而jsp需要遵循一定的脚本语言规范。在servlet代码中,需要调用servlet提供的相关api接口方法,才可以对http请求及业务进行处理,对于业务逻辑方面的处理功能更加强大。然而在jsp页面中,通过html代码与jsp内置对象实现对http请求及页面的处理,其显示界面的功能更加强大

③servlet需要编译后运行

servlet需要在java编译器编译后才可以运行,如果servlet在编写完成或修改后没有被重新编译,则不能运行在web容器中。而jsp则与之相反,jsp由jsp container对齐进行管理,它的编辑过程也由jsp container对jsp进行自动编辑,所以,无论jsp文件被创建还是修改,都不需要对其编译即可执行

④速度不同

由于jsp页面由jsp container对其进行管理,在每次执行不同内容的动态jsp页面时,jsp container都要对其自动编译,所以,它的效率低于servlet的执行效率。而servlet在编译完成之后,则不需要再次编译,可以直接获取及输出动态内容。在jsp页面中的内容没有变化的情况下,jsp页面的编译完成之后,jsp container不会再次对jsp进行编译

在jsp产生之前,无论是页面设计还是业务逻辑代码都需要编写与servlet中。虽然servlet在功能方面很强大,完全可以满足对于web应用的开发需求,但如果每一句html代码都由servlet的固定方法来输出,则操作会过于复杂。而且在页面中,往往还需要用到css样式代码、js脚本代码等,对于程序开发人员而言,其代码量将不断增加,所以操作十分繁琐。针对这一问题,Sun提出了jsp (java server page)技术,可以将html、css、js的那个相关代码直接写入导jsp页面中,从而简化了程序员对web程序的开发

来源:方帮信(微信:changyandoublog,邮箱:changyandou@126.com),欢迎分享!