当前位置: 移动技术网 > IT编程>开发语言>Jsp > Servlet与JSP的区别

Servlet与JSP的区别

2018年09月29日  | 移动技术网IT编程  | 我要评论

一、基本概念

1.1 servlet

servlet是一种服务器端的java应用程序,具有独立于平台和协议的特性,可以生成动态的web页面。它担当客户请求(web或其他http客户程序)与服务器响应(http服务器上的或应用程序)的中间层。 servlet是位于web 服务器内部的服务器端的java应用程序,与传统的从命令行启动的java应用程序不同,servlet由web服务器进行加载,该web服务器必须包含支持servlet的java。

1.2 jsp

jsp技术使用java语言编写类xml的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。jsp将网页逻辑与的显示分离,支持可重用的基于的设计,使基于web的应用程序的开发变得迅速和容易。 jsp(javaserver pages)是一种动态页面技术,它的主要目的是将表示逻辑从servlet中分离出来。

jsp是一种脚本语言,包装了java servlet的界面,简化了java和servlet的使用难度,同时通过扩展jsp标签(tag)提供了网页动态执行的能力。jsp提供了一套简单的标签,和html融合的比较好,可以使不了解servlet的人可以做出动态网页来。对于java语言不熟悉的人,会觉得jsp开发比较方便。jsp修改后可以立即看到结果,不需要手工编译,jsp引擎会来做这些工作;而servelt缺需要编译,重新启动servlet引擎等一系列动作。但是在jsp中,html与程序代码混杂在一起,而servlet却不是这样。下面我们对jsp的运行来做一个简单的介绍,告诉大家怎样来执行一个jsp文件:当web服务器(或servlet引擎,应用服务器)支持jsp引擎时,jsp引擎会照着jsp的语法,将jsp文件转换成servlet代码源文件,接着servlet会被编译成java可执行字节码(bytecode),并以一般的servlet方式载入执行jsp语法简单,可以方便的嵌入html之中,很容易加入动态的部分,方便的输出html。在servlet中输出html缺需要调用特定的方法,对于引号之类的字符也要做特殊的处理,加在复杂的html页面中作为动态部分,比起jsp来说是比较困难的。

二、两者之间的联系和区别

【1】jsp第一次运行的时候会编译成servlet,驻留在内存中以供调用。

【2】jsp是web开发技术,servlet是服务器端运用的小程序,我们访问一个jsp页面时,服务器会将这个jsp页面转变成servlet小程序运行得到结果后,反馈给用户端的浏览器。

【3】servlet相当于一个控制层再去调用相应的javabean处理数据,最后把结果返回给jsp。

【4】servlet主要用于转向,将请求转向到相应的jsp页面。

【5】jsp更多的是进行页面显示,servlet更多的是处理业务,即jsp是页面,servlet是实现jsp的方法。

【6】servlet可以实现jsp的所有功能,但由于美工使用servlet做界面非常困难,后来开发了jsp。

【7】jsp技术开发网站的两种模式:jsp + javabean;jsp + servlet + javabean(一般在多层应用中, jsp主要用作表现层,而servlet则用作控制层,因为在jsp中放太多的代码不利于维护,而把这留给servlet来实现,而大量的重复代码写在javabean中)。

【8】二者之间的差别就是,开发界面是jsp直接可以编写。

比如在jsp中写table标记:

[数据]

 

servlet需要加入:out.println(“

[数据]
”)。

 

jsp文件在被应用服务器(例如:tomcat、resin、weblogic和websphere),调用过之后,就被编译成为了servlet文件。也就是说在网页上显示的其实是servlet文件。tomcat下面jsp文件编译之后生成的servlet文件被放在了work文件夹下,jsp中的html代码在servlet都被out出来,而jsp代码按照标签的不同会放在不同的位置。

【9】jsp中嵌入java代码,而servlet中嵌入html代码。

【10】在一个标准的mvc架构中,servlet作为controller接受用户请求并转发给相应的action处理,jsp作为view主要用来产生动态页面,ejb作为model实现你的业务代码。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网