您的位置:首页 > Web前端 > JavaScript

jsp和Servlet的比较

2015-06-28 18:53 555 查看
Jsp以java语言为脚本语言,是servlet的扩展,在没有JSP之前,就已经出现了Servlet技术。Servlet利用输出流动态生成HTML页面,包括每一个HTML标签和所有在HTML页面中出现的内容。

由于包括大量的HTML标签、大量的静态文本及格式等,导致Servlet的开发效率极为低下,所有的表现逻辑,包括布局、色彩及图像等,都必须耦合在java代码中,jsp的出现弥补了这种不足,jsp通过在标准的html页面中嵌入java代码,其静态的部分无需java程序控制,只有那些需要从数据库读取或者需要动态生成的页面内容,才使用java脚本控制。

Jsp页面的内容主要由两部分构成:

1、静态部分:标准的HTML标签、静态的页面内容,这些内容与静态HTML页面相同。

2、动态部分:受Java程序控制的内容,这些内容由Java程序来动态生成。

运行环境:执行JSP代码需要在服务器上安装JSP引擎,比如WebLogic,Tomcat。把支持JSP的Web服务器配置好后,就可以在客户端通过浏览器来访问JSP页面了。

Jsp是Servlet的一种特殊形式,每个JSP页面就是一个Servlet实例。JSP被JSP编译器编译成Servlet,Servlet再负责响应用户请求。JSP其实也是Servlet的一种简化,使用JSP时,其实还是使用Servlet,因为Web应用中的每个JSP页面都会由Servlet容器生成对应的Servlet。对于Tomcat而言,JSP页面生成的Servlet放在work路径对应的Web应用下。当启动Tomcat之后,可以在Tomcat的work\Catalina\localhost\ytdetection1\org\apache\jsp目录下找到文件:例如login_jsp.java和login_jsp.class。这两个文件都是由Tomcat生成的,Tomcat根据JSP页面生成对应Servlet的Java文件和class文件。

JavaServer Pages : 是一种用于开发包含有动态内容的Web页面的技术。JSP页面中还包含有一些特殊的JSP元素,从而允许服务器在页面中插入同台内容。当用户请求一个JSP页面时,服务器会执行这些JSP元素,将结果与页面的静态部分加以合并,然后将动态生成的页面发还给浏览器。



Servlet:(详细请看Servlet详解篇)

Servlet在进程中执行,而进程直到基于Servlet的应用关闭时才会结束运行。每个Servlet请求都作为此持久性进程中的一个单独线程的一致性。而只爱去哪的CGI,要为每一个请求创建一个新的进程。
Servlet可以访问多个请求之间一直加载在进程内存中的资源,诸如数据库连接和持久状态等。
Servlet是平台独立的Java类,Servlet被编译为平台独立的字节码,可以被动态地加载到支持Java技术的Web服务器中运行。
Servlet不能单独执行,它必须被部署到Servlet容器中,由容器来实例化和调用Servlet的方法。容器通常在首次接收到对某Servlet的请求时加载一个Servlet类,使之有机会自行初始化,然后再要求此Servlet处理请求。后续的请求则使用同一个得到初始化的Servlet加以处理,直到服务器关闭为止。
Servlet容器有很多类型。有的称为插件,其用于为Web服务器增加Servlet支持,而无需本地Servlet的支持。还有独立服务器,其包含有对HTTP提供完全支持的Web服务器功能,还提供了对Servlet运行时环境的支持。如果容器作为应用服务器的一部分得到捆绑,还可以把Servlet的执行分布到多台主机上。
无论Servlet容器室何种类型,都要负责将一个到来的请求映射到某个已经注册的Servlet,从而处理由URI标示的资源,并将请求消息传递给该Servlet。请求得到处理后,容器负责将Servlet所创建的响应转换为一个HTTP响应消息,并将其发回至客户。

JSP与servlet相比的优势:

1、在HTML页面中嵌入动态元素

在使用JSP之前,都是把HTML直接嵌入到编程语言代码中,以此来生成动态Web页面。这就要求程序员也要充分得涉足动态Web页面的创建,而程序员的工作本应是完成这些页面的调整。而JSP则是向HTML页面中嵌入了特殊的活动元素,即特殊的jsp元素。这些元素看上去与HTML元素颇为类似,但是其本质实际上是组件化的Java程序。

除此以外,JSP页面还可嵌入java代码,即所谓的脚本元素。但是,随着JSP EL和JSTL的出现,已经很少需要在页面中嵌入Java代码。

2、编译:JSP页面只在首次请求时将其编译为可执行代码,这样以后有相应的页面请求时则直接调用前面的已编译的代码。

3、合理分工:JSP可以把请求处理和业务逻辑分离,这种分离,有两种方式:一种是使用JSP标准元素和定制元素,这些元素用编程代码实现,其使用方式与常规Web页面中的页面标记元素并无差别。另一种方法是将JSP与其他J2EE技术相结合。例如,使用Servlet完成Control部分,而用JavaBeans和Enterprise JavaBeans(EJB)来完成model,JSP完成view。

Tomcat是Sun公司推荐运行的Servlet和Jsp容器,它可以被集成到IIS和Apache中。Tomcat也具有Web服务器的一些基本功能,仅基本功能而已。对于一般的Web应用,我们可以直接将Tomcat作为Web服务器软件运行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: