前面我们写到了JAVA比较核心的一个概念Servlet,其功能比较强劲,体系设计也很先进,只是,渲染客户端页
面是需要一句一句输出的,这样,编写和修改HTML都会非常不方便。也就是说Servlet写“表现层”很繁琐。这就有了
jsp(Java Server Page)的诞生。jsp通过在html或xml中嵌套Java代码实现动态网页。需要说明的是jsp本质
是Servlet,运行时会被编译成Servlet的格式,执行的生命周期和Servlet完全一致。
我们知道JSP的实质还是Servlet,JSP的不同之处在于JSP是把Java代码嵌套到HTML代码中,虽然是嵌套在HTML
中,但是JSP还是服务端的,而且会先转换成Servlet然后才会被处理。
1. 用户请求JSP页面(HTTP请求)
2. webserver中的Servlet容器发现URL中有JSP后缀, 就调用JSP容器来处理
3. 如果此页面是第一次被请求,JSP容器要定位JSP页面文件并解释它,解释的过程包括:将JSP源文件处理成servlet代
码(java), 以及编译java文件生成servlet的call文件.
说明:JSP解释器生成的Servlet类是实现了java.servlet.jsp.HttpJspPate接口的类(由JSP容器提供)的一个子
类,这个Servlet类叫做页面实现类(JSP页面实例);
4. JSP容器运行页JSP页面实例,此时Servlet(即JSP页面实例)就会出来HTTP请求, 生成对于的HTTP响应并传回给客户
端.(如果此页面不是第一次被请求,则跳过3, 直接跳到4.)
1.JSP在本质上就是SERVLET简易方式,是Servlet技术的扩展。但是两者的创建方式不一样。
2.Servlet完全是JAVA程序代码构成,擅长于流程控制和事务处理,通过Servlet来生成动态网页很不直观。JSP由
HTML代码和JSP标签构成,可以方便地编写动态网页。因此在实际应用中采用Servlet来控制业务流程,而采用JSP来
生成动态网页。
3.Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开
来。而JSP是Java和HTML组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。在struts1框
架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层。
JSP(Java Server Page)与ASP(Active ServerPage)两者都是常用的动态网页技术,也都是可以嵌入HTML中的程
序,但两者是有着本质的不同,主要从以下几个方面对其进行比较:
开发人员在对两者各自软件体系设计的深入了解的方式不同。JSP技术基于平台和服务器的互相独立,输入支持
来自广泛的,专门的,各种工具包,服务器的组件和数据库产品开发商所提供。相比之下,ASP技术主要依赖微软的
技术支持。
JSP是建立在可重用的、跨平台的组件(如:JavaBeans、EnterprisesJavaBeans和用户定制的标签库等组件)
之上的,而ASP使用的是基于Win32的COM组件模型。
JSP可以使用Java编程语言或JavaScript作为脚本语言,而ASP使用VBScript或Jscript作为脚本语言。
JSP可以使用用户定制标签库进行扩充,而ASP中没有用户定制标签库,ASP是不能扩充的。
JSP比asp有更好的适用性和开发性,而且维护起来更好方便,跨平台更好。
学习过Servlet和ASP之后,对JSP的理解就容易多了,JSP本质上是servlet。通过嵌入Java代码,是前台开发
变得更加简洁方便,而与Servlet的结合,又是视图层和控制层更好的分离。同时,它又比ASP有更好的适用性和跨
平台的可重用性,更加易于维护。