JSP学习 —— 开篇:JSP,servlet容器,Tomcat,servlet容器之间的关系
2011-08-08 14:21
716 查看
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个方法):
最主要的方法就是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页面在第一次被访问时,其所花费的时间是最长的。
说到最后,JSP其实还是一种对servlet的简化语言,所有的JSP页面最终都会被servlet容器编译成servlet类(其实就是java类),而至于什么是servlet容器,在此简单说下,仅从字面意思上看,它就是一种存放东西的容器,存放什么东西呢?存放维护和创建servlet相关的逻辑(懂C++的JSP新手注意:千万不要将这里的容器和C++中的VECTOR容器相混淆,这里的容器就是一个简单的存东西的容器)。而servlet的实现逻辑大体如下(5个方法):
public void init(ServletConfig config) throws ServletException public void service(ServletRequest request, ServletResponse response) throws ServletException, java.io.IOException public void destroy() ServletConfig getServletConfig() 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页面在第一次被访问时,其所花费的时间是最长的。
相关文章推荐
- JSP学习 —— 开篇:JSP,servlet容器,Tomcat,servlet容器之间的关系
- JSP学习 —— 开篇:JSP,servlet容器,Tomcat,servlet容器之间的关系
- JSP学习 —— 开篇:JSP,servlet容器,Tomcat,servlet容器之间的关系
- JSP学习 —— 开篇:JSP,servlet容器,Tomcat,servlet容器之间的关系
- JSP学习 —— 开篇:JSP,servlet容器,Tomcat,servlet容器之间的关系
- JSP,servlet容器,Tomcat,servlet容器之间的关系
- JSP,servlet容器,Tomcat,servlet容器之间的关系
- JSP,servlet容器,Tomcat,servlet容器之间的关系
- apache和 tomcat,jsp,servlet之间是什么关系
- Tomcat,Servlet,JSP之间是什么关系?
- httpServletRequest对象、filter、servlet、servlet容器、catalina、tomcat、以及web容器之间的关系
- Tomcat和Servlet-JSP-Java版本之间的关系
- 一张图说明servlet、servlet容器、web服务器、Tomcat之间的关系
- 初学者对Servlet、JSP及Web容器之间关系的理解
- 学习tomcat源码(2) 实现servlet容器功能
- 学习总结:jsp与servlet的关系与不同
- Tomcat 5 servlet/JSP 容器 JNDI 资源使用说明 (一)
- tomcat/jsp/servlet版本关系
- servlet / jsp 学习——java,关系,区别,核心概念,代码例子
- Servlet容器与Servlet,Tomcat的关系