jsp生命周期和工作原理
jsp的工作原理
jsp是一种Servlet,但是与HttpServlet的工作方式不太一样。httpservlet是先由源代码
编译为class文件后部署到服务器下的,先编译后部署。而jsp则是先部署后编译为class
文件,先部署后编译jsp会在客户端第一次请求jsp文件时被编译为Httpjsppage类该类是
Servlet的一个子类。该类会被服务器临时存放在服务器工作目录里面。
以下说明jsp的编译过程。在客户端第一次请求greeting.jsp时,Tomcat先将greeting.jsp
转化为标准的java源代码greeting.jsp.java,存放在C:\apache-tomcat-6.013(相关的版本号)
\work\catalina\locahost\jsp\or\apache\jsp目录下,并将greeting_jsp.java编译为类文件greetimg
_jsp.class.该class文件便是jsp对应的servlet。编译完毕后再运行class文件来响应客户端请求。
以后客户端访问greeting.jsp时服务器将不再重新编译jsp文件而是直接调用greeting_jsp.class
来响应客户端请求。
由于jsp只会在客户端第一次请求的时候被编译,所以第一次请求时会比较慢,而后速度有所提升
。如果将Tomcat保存的jsp编译后class文件删除,Tomcat也会重新编译jsp
jsp的生命周期
jsp也是Servlet,运行时只会有一个实例。跟Servlet一样,jsp实例初始化,销毁时也会调用Servlet
的init()与destory()方法。另外其还有自己的初始化方法与销毁方法_jspInit()与_jspDestroy()
举例如下
<% page language ="java" contentType="text/html;charset=UTF-8"%>
<%public void _jspInit(){
相关初始化代码}
public void _Destroy(){
销毁时运行的代码}
%>
jsp生命周期和工作原理的更多相关文章
- Servlet 生命周期、工作原理(转)
原文链接:Servlet 生命周期.工作原理 Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁. init():在Servlet的生命周期中,仅执 ...
- Servlet的生命周期及工作原理
Servlet生命周期分为三个阶段: 1,初始化阶段 调用init()方法 2,响应客户请求阶段 调用service()方法 3,终止阶段 调用destroy()方法 Servlet初始化阶段: 在 ...
- servlet生命周期与工作原理
→ Jsp的本质是Servlet,Servlet是服务器端的小程序,运行在服务器,用于处理及响应客户端的请求. Servlet和JSP的区别: servlet是特殊的Java类,必须继承HttpS ...
- Servlet生命周期与工作原理(转载)
Servlet生命周期分为三个阶段: 1,初始化阶段 调用init()方法 2,响应客户请求阶段 调用service()方法 3,终止阶段 调用destroy()方法 Servlet初始化阶段: 在 ...
- Session的生命周期和工作原理
一.什么是Session,如何使用?Session是用于存放用户与web服务器之间的会话,即服务器为客户端开辟的存储空间. 由于客户端与服务器之间的会话是无状态的机制,Session则可用于关联访问, ...
- servlet的生命周期和工作原理介绍
一.servlet生命周期 Servlet生命周期分为三个阶段: 1)初始化阶段: 调用init()方法 2)响应客户请求阶段:调用service()方法 3)终止阶段:调用destroy()方法 T ...
- Servlet生命周期及工作原理
1 Servlet生命周期Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁. init():在Servlet的生命周期中,仅执行一次init()方 ...
- Servlet 生命周期、工作原理
按照单例的编码规则,Servlet本身只是一个Java,结构并不是单例结构. 只是Web容器在维护这些Servlet的时候只给创建一个实例存在JVM中,用户请求服务时,服务器只调用它已经实例化好的Se ...
- servlet的生命周期与工作原理、使用!
概念: Servlet是一个java程序运行在服务器上,处理客户端请求并做粗响应的程序!Servlet是和平台无关的服务器组件,它运行在Servlet容器中,Servlet容器 负责servlet和客 ...
随机推荐
- android经常使用的电话操作
给大家分享一下我的一个Android工具类,能够获取手机里面的各种信息,包含拨打电话. 获取全部联系人姓名及电话,插入联系人姓名及电话,插入联系人姓名及电话.插入通话记录.获取用户全部短信.批量插入短 ...
- 光学基础知识:白光、颜色混合、RGB、色彩空间
1665年,牛顿(Isaac Newton)进行了太阳光实验,让太阳光通过窗板的小圆孔照射在玻璃三角棱镜上,光束在棱镜中折射后,扩散为一个连续的彩虹颜色带,牛顿称之为光谱,表示连续的可见光谱.而可见光 ...
- js如何判断一个对象是不是Array?(转载)
js如何判断一个对象是不是Array? 在开发中,我们经常需要判断某个对象是否为数组类型,在Js中检测对象类型的常见方法都有哪些呢? typeof 操作符 对于Function, String, Nu ...
- asp.net中 服务器控件中onselectedindexchanged 没有反应的解决方案
最近发现项目中一个BUG就是 DropDownList 中的onselectedindexchanged 没有反应 AutoPostBack="true"和页面中的<%@ P ...
- Cloudera Manager、CDH零基础入门、线路指导 http://www.aboutyun.com/thread-9219-1-1.html (出处: about云开发)
Cloudera Manager.CDH零基础入门.线路指导http://www.aboutyun.com/thread-9219-1-1.html(出处: about云开发) 问题导读:1.什么是c ...
- CentOS-6.3安装配置JDK-7或 JDK-6
链接地址:http://blog.csdn.net/shuixin536/article/details/8954000 http://www.cnblogs.com/zhoulf/archive/2 ...
- YII2 使用js
1.在 /backend/assets/ 中新建一个文件 CollectionAsset.php <?php /** * @link http://www.yiiframework.com/ * ...
- Django问题汇总
Q1.运行python manage.py runserver后,出现如下错误(CentOS6.5x86,Python2.7.12,Django1.10): django.core.exception ...
- Qt在各平台上的搭建qt-everywhere
Qt for windows7-64bit 在电脑上安装mingw(搜索mingw for windows),将C:\MinGW\bin添加进环境变量,打开命令行输入gcc --version和g++ ...
- python爬虫实战1
转载于:http://blog.csdn.net/dongnanyanhai/article/details/5552431 首先推荐一个网站:中医世家,这个网站上有很多关于中医的资料,光是提供的中医 ...