Tomcat与Servlet工作流程
2015-06-26 22:27
597 查看
什么是Tomcat?
Tomcat服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器。
什么是Servlet?
Servlet是在服务器上运行的小程序。,说白了Servlet就一个应用程序,用于提供服务。
什么是JSP?
JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计。
jsp的本质就是Servlet。当将jsp部署到Tomcat上的时候,访问该页面的时候,会在tomcat的work\Catalina\localhost目录下产生*.java文件。
如果单纯的用Servlet 的out.Println()来输出网页你肯定会发疯的 jsp就是为了解决这个问题而诞生的。
JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
通过了解以上的概念。来分析一下Servlet的执行过程。
Servlet的生命周期:
Init()方法:在Servlet的生命周期中,仅执行一次init()方法。即在Tomcat服务器装入Servlet时执行的,负责初始化Servlet对象。可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Servlet,都不会重复执行init()方法。
Service()方法:也是Servlet的核心,负责响应客户的请求。
经常看到Servlet里面有doGet()方法和doPost()方法。在这三个方法中。Servlet默认情况下,无论是get请求还是post请求,都会经过service()方法来处理,之后在转到对应的doGet或doPost方法上。
Destroy()方法:仅执行一次,在服务器端停止且卸载Servlet时执行该方法。当Servlet对象退出生命周期时,负责释放占用的资源。一个Servlet在运行service()方法时可能会产生其他的线程,因此需要确认在调用destroy()方法时,这些线程已经终止或完成。
Servlet在Tomcat上的执行流程:
![](http://img.blog.csdn.net/20150626221553307?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemM0NzQyMzU5MTg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
通过上面这个图,可以看出Servlet在接收client请求的时候,分别创建一个request对象和一个response对象。然后把HttpRequest对象与HttpResponse对象作为参数传给HttpServlet
对象。
创建Servlet对象的时机:
1、Servlet容器启动时:读取web.xml配置文件中的信息,构造指定的Servlet对象,创建ServletConfig对象,同时将ServletConfig对象作为参数来调用Servlet对象的init方法。
2、在Servlet容器启动后:客户首次向Servlet发出请求,Servlet容器会判断内存中是否存在指定的Servlet对象,如果没有则创建它,然后根据客户的请求创建HttpRequest、HttpResponse对象,从而调用Servlet对象的service方法。
3、ServletServlet容器在启动时自动创建Servlet,这是由在web.xml文件中为Servlet设置的<load-on-startup>属性决定的。从中我们也能看到同一个类型的Servlet对象在Servlet容器中以单例的形式存在。
通过了解了Servlet的声明周期以及执行过程。在修改调试Servlet的时候,才知道什么时候需要重新启动Tomcat,从而提高编码的速度。
Tomcat服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器。
什么是Servlet?
Servlet是在服务器上运行的小程序。,说白了Servlet就一个应用程序,用于提供服务。
什么是JSP?
JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计。
jsp的本质就是Servlet。当将jsp部署到Tomcat上的时候,访问该页面的时候,会在tomcat的work\Catalina\localhost目录下产生*.java文件。
如果单纯的用Servlet 的out.Println()来输出网页你肯定会发疯的 jsp就是为了解决这个问题而诞生的。
JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
通过了解以上的概念。来分析一下Servlet的执行过程。
Servlet的生命周期:
Init()方法:在Servlet的生命周期中,仅执行一次init()方法。即在Tomcat服务器装入Servlet时执行的,负责初始化Servlet对象。可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Servlet,都不会重复执行init()方法。
Service()方法:也是Servlet的核心,负责响应客户的请求。
经常看到Servlet里面有doGet()方法和doPost()方法。在这三个方法中。Servlet默认情况下,无论是get请求还是post请求,都会经过service()方法来处理,之后在转到对应的doGet或doPost方法上。
Destroy()方法:仅执行一次,在服务器端停止且卸载Servlet时执行该方法。当Servlet对象退出生命周期时,负责释放占用的资源。一个Servlet在运行service()方法时可能会产生其他的线程,因此需要确认在调用destroy()方法时,这些线程已经终止或完成。
Servlet在Tomcat上的执行流程:
通过上面这个图,可以看出Servlet在接收client请求的时候,分别创建一个request对象和一个response对象。然后把HttpRequest对象与HttpResponse对象作为参数传给HttpServlet
对象。
创建Servlet对象的时机:
1、Servlet容器启动时:读取web.xml配置文件中的信息,构造指定的Servlet对象,创建ServletConfig对象,同时将ServletConfig对象作为参数来调用Servlet对象的init方法。
2、在Servlet容器启动后:客户首次向Servlet发出请求,Servlet容器会判断内存中是否存在指定的Servlet对象,如果没有则创建它,然后根据客户的请求创建HttpRequest、HttpResponse对象,从而调用Servlet对象的service方法。
3、ServletServlet容器在启动时自动创建Servlet,这是由在web.xml文件中为Servlet设置的<load-on-startup>属性决定的。从中我们也能看到同一个类型的Servlet对象在Servlet容器中以单例的形式存在。
通过了解了Servlet的声明周期以及执行过程。在修改调试Servlet的时候,才知道什么时候需要重新启动Tomcat,从而提高编码的速度。
相关文章推荐
- - 配置Tomcat 中文字符集
- Tomcat部署web项目
- 如何设置Tomcat的默认端口
- Tomcat部署Web项目方式
- Mac系统Tomcat自动编译servlet启动
- tomcat服务器虚拟路径配置
- 部署war包到tomcat下
- tomcat配置优化
- mod_jk(Apache+mod_jk+tomcat)详细配置方法
- jmx+jconsole远程监视tomcat的jvm
- 实战Tomcat配置SSL,使用openssl制作证书
- idea_IDEA跑Tomcat异常
- tomcat均衡负载
- 基于Tomcat7、Java、WebSocket的服务器推送聊天室项目
- tomcat 优化策略
- aws云平台的搭建相关资料和web站点tomcat搭建与mysql搭建实例
- #JSP#Tomcat下使用JSP调用JavaBean显示ClassNotFoundException
- 一个tomcat部署两个项目引发的血案:Web app root system property already set to different value: 'webapp.root'
- linux下tomcat开机启动简单配置
- win7下安装配置tomcat,java运行环境