JSP学习 —— 开篇:JSP,servlet容器,Tomcat,servlet容器之间的关系

JSP(JAVA SERVER PAGE)的缩写,其本身就是servlet的简化,是一种动态网页标准,其特点是在HTML代码中嵌入JAVA代码,JSP标签或用户标签来生成网页。至于它为什么会出现,主要原因在于早期的servlet技术在编写代码时经常通篇性的写一大堆HTML标签,静态文本及文本格式等表现逻辑,其开发效率非常之低下;为了解决这种情况,便随之出现了JSP,其静态部分(包括表现逻辑,如图片,文字等等)全用HTML语言来编写,只有需要动态生成的逻辑才由嵌入的JAVA代码来实现。

说到最后,JSP其实还是一种对servlet的简化语言,所有的JSP页面最终都会被servlet容器编译成servlet类(其实就是java类),而至于什么是servlet容器,在此简单说下,仅从字面意思上看,它就是一种存放东西的容器,存放什么东西呢?存放维护和创建servlet相关的逻辑(懂C++的JSP新手注意:千万不要将这里的容器和C++中的VECTOR容器相混淆,这里的容器就是一个简单的存东西的容器)。而servlet的实现逻辑大体如下(5个方法):

[java] view plain copy

print?

  1. public void init(ServletConfig config) throws ServletException
  2. public void service(ServletRequest request, ServletResponse response)
  3. throws ServletException, java.io.IOException
  4. public void destroy()
  5. ServletConfig getServletConfig()
  6. public java.lang.String getServletInfo()

最主要的方法就是init,service和destroy,它们是servlet对象的生存周期,当一个页面被编译成servlet类,再进行实例化后,这个页面就开始了真正的生命周期,servlet容器会先加载init方法进行初始化,初始化后才可进行接收和相应客户端的消息,之后容器会再加载service,这部分就是真正相应客户端请求的实现逻辑,它实现客户端的请求响应,然后动态生成HTML页面显示到客户端;而destory方法则是在servlet生命周期即将结束时进行的清理工作。

而事实上,Tomcat在大多数情况下充当servlet的容器,也就是说:在写完JSP代码后进行第一次执行时,tomcat(servlet容器)先将JSP代码翻译成servlet类(java代码),然后实例化该类,再调用该类的init,service,destory等进行生命周期服务。当客户端再进行第二次访问请求时,此时就没有servlet容器的翻译这一步了,因为之前翻译的java代码会一直保存,以便于后面的访问不再进行翻译,可大大提高访问效率。所以,JSP页面在第一次被访问时,其所花费的时间是最长的。

时间: 2024-10-24 01:46:47

JSP学习 —— 开篇:JSP,servlet容器,Tomcat,servlet容器之间的关系的相关文章

[jsp学习笔记] jsp基础知识 数据初始化、同步

对于所有用户都需要的数据,并且不必每次都从数据库读取,只需第一次读出到内存,则新建一个servlet,把servlet映射删除 所有用户都不能访问 ,所以需要给servlet添加配置 表示服务启动就初始化 servlet的init方法中初始化数据(doget dopost 设置空) 前台输出代码 对于数据改变的时候需要同步的可以在修改完成时同步,也可以定时同步. 页面跳转: 比如数据在session里

[jsp学习笔记] jsp过滤器

常用有检测是否登录过滤 ,编码 等等

云计算学习路线图素材课件:DevOps和云计算之间的关系

大多数公司都知道,想要在这个瞬息万变的时代提升自己的竞争力,就不得不面临企业转型的局面,DevOps和云计算是被公认的两种转型途径.这两者之间看似没什么联系,但并不排斥,DevOps涉及到的是流程和流程的改进,而云计算则是涉及技术和服务的改进. 了解云计算和DevOps如何协同工作,是帮助企业实现转型的关键.不同的企业定义DevOps的方式不同.本文的目的不是讲述哪个定义是正确的或是错误的,而是将两者都呈现出来,以便关注云计算对DevOps的好处. 云计算是当前市场上的热门技术,也是未来互联网发

java学习之Java中JDK,JRE和JVM之间的关系(转载)

最近要重新抓一下java,大量扫技术文档,保存下来供自己查阅.以下转载自http://www.cnblogs.com/xiaofeixiang/p/4085159.html 初学JAVA很容易被其中的很多概念弄的傻傻分不清楚,首先从概念上理解一下吧,JDK(Java Development Kit)简单理解就是Java开发工具包,JRE(Java Runtime Enviroment)是Java的运行环境,JVM( java virtual machine)也就是常常听到Java虚拟机.JDK是

Servlet&JSP学习笔记

Servlet&JSP学习笔记 */--> Servlet&JSP学习笔记 Table of Contents 1 Web容器 2 内置对象 2.1 内置对象分类 2.1.1 out 2.1.2 request 2.1.3 application 2.1.4 response 2.1.5 session 2.1.6 其他 3 JavaBean 3.1 JSP动作元素 3.2 javabean的四个作用於范围 4 JSP状态管理 4.1 Cookie 4.2 include 指令与动作

06.实现servlet的几种方式,以及接口或者类之间的关系

接口:Servlet.ServletConfig.ServletRequest.ServletResponse.HttpServletRequest.HttpServletResponse.ServletContext 类:HttpServlet(抽象类).GenericServlet(抽象类) 来张关系图 ServletContext: ServletContext的对象是application是在项目初始化时被创建的.故servletContext随着应用初始化而被创建,随着应用的结束而被销

servlet和jsp学习指南(一)servlet

近期接触了些纯servlet与jsp的编程项目,顺便把<servlet和jsp学习指南>这本书拿出来看看,感悟良多.记下随笔,以便会议. 要编写一个servlet首先要实现Servlet或者继承HttpServlet package test.com.servlet; import java.io.IOException; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet

Servlet和JSP学习指导与实践(三):JSP助阵

前言: JSP(Java Server Page)虽然作为一门服务端的语言,但它并没有创新新的语言标准.有些人一接触jsp之后发现易学易懂.实际上,jsp的内部原理仍然是基于Servlet,它是Servlet的补充,而并不是要取代Servlet.本文对JSP的一些概念及基础内容进行了不详尽的总结,希望感兴趣的博友凑合着看~ ------------- Part I: jsp指令,脚本元素,动作 1.常见指令 (1)page指令: <%@ page language="java"

Servlet和JSP学习指导与实践(一)

前言: JavaSE如何跨度到JavaEE?原本java语言只是专门用于application桌面小应用程序的开发,但自从其追随CGI进入服务器端的开发之后便一发不可收拾.先是Servlet1.0,再是2.0,然后又3.0 ... 之后,各种基于Web的框架发展迅猛,Spring,Struts,Struts2等等.从事Java的人不少都是从jsp开始,甚至从框架开始,但却不知Servlet为何物?本系列将专门讲述Java Web的始祖---“Servlet”(会讲述JSP相关内容,但其实JSP也