Jsp 和 Servlet 的对比学习

来源:互联网 发布:欲知大道 编辑:程序博客网 时间:2024/06/10 09:59

JSP 和 SERVLET

JSP(JavaServlet Page)实际上它也是从Servlet继承而来。只不过它在Servlet当中又添加/修改了一些方法,作了新的封装。具体到Tomcat Web应用服务器中,它通过一个多重继承,分别从Java的HttpJspPage和HttpServlet两个类那里继承和实现一些方法,然后封装一个叫做HttpJspBase的类从而实现了一个通用化的JSP类,用户在开发自己的JSP时,只需要从HttpJspBase继承一个自己的类,然后根据需要去实现相应的方法即可。

因此这也是为什么JSP的代码中总是闪现Servlet代码框架影子的原因,其实它们只是为实现同样的功能而进行了不同封装的组件而已,底层都是一样的。

了解两个问题

  1. JSP是什么
    JSP就是嵌入了Java代码的HTML

  2. SERVLET是什么
    Servlt就是嵌入了HTML的Java类

区别

那肯定是因为JSP有它更高明的地方。

servlet

使用Servlet产生动态网页,需要在代码中打印输出很多HTML的标签
此外,在Servlet中,我们不得不将静态现实的内容和动态产生内容的代码混合在一起
使用Servlet开发动态网页,程序员和网页编辑人员将无法一起工作,为了解决这些问题,Sun公司就推出了JSP技术。

jsp

JSP是Servlet的扩展,在没有JSP之前,就已经出现了Servlet技术。Servlet是利用输出流动态生成HTML页面,包括每一个HTML标签和每个在HTML页面中出现的内容。
JSP通过在标准的HTML页面中插入Java代码,其静态的部分无须Java程序控制,只有那些需要从数据库读取并根据程序动态生成信息时,才使用Java脚本控制。

相同

  1. JSP是Servlet的一种特殊形式,每个JSP页面就是一个Servlet实例——JSP页面由系统编译成Servlet,
  2. Servlet再负责响应用户请求。JSP其实也是Servlet的一种简化,使用JSP时,其实还是使用Servlet,因为Web应用中的每个JSP页面都会由Servlet容器生成对应的Servlet。
  3. 对于Tomcat而言,JSP页面生成的Servlet放在work路径对应的Web应用下。
  4. Tomcat根据JSP页面生成对应Servlet的Java文件及class文件。

JSP过程

  1. JSP文件必须在JSP服务器内运行。JSP文件必须生成Servlet才能执行。每个JSP页面的第一个访问者速度很慢,因为必须等待JSP编译成Servlet。被tomcat编译为servlet,存放在work目录
  2. JSP页面的访问者无须安装任何客户端,甚至不需要可以运行Java的运行环境,因为JSP页面输送到客户端的是标准HTML页面。
  3. 当客户请求一个JSP页面的时候,Tomcat服务器自动生成Java文件、编译Java文件,并用编译得到的字节码文件在服务器端创建一个Servlet。

生命周期对比流程图

送上jsp的生命周期流程图
图片来自慕课学习

对比servlet的生命周期流程图
图片来自慕课学习

总结

  1. servlet是在web服务器上的java程序,它提供服务,由它来传递给你html的格式。Servlet API为Servlet提供了统一的编程接口
  2. Servlet必须部署在Servlet容器,才能响应客户端的请求 对外提供服务。要对外统一接口,由容器来调用。
  3. jsp侧重显示;servlet侧重控制逻辑。

参考0
参考1
参考2