javaWeb应用的生命周期
来源:互联网 发布:软件售后服务流程图 编辑:程序博客网 时间:2024/05/18 01:55
首先介绍两个概念:
servlet容器-->可以理解为可以放很多servlet的盒子,所以叫容器 例如tomcat
servlet-->-一个类,应用的入口。
Web应用在web.xml中配置的servlet。一个应用可以有多个servlet,一般只有一个,例如使用springmvc的ervlet:是org.springframework.web.servlet.DispatcherServlet,
当然也可以自己建一个,像底下的实例,实现servlet接口就行啦。
Servlet的基本方法
init(ServletConfig config); 初始化调用
service(ServletRequest request, ServletResponse response) 用户每次访问调用
destroy(); 销毁时调用
web应用的访问过程:
_tomcat_________
用户 -------->浏览器--------> | 应用 servlets |
|_______________ |
浏览器将用户的信息发送给servlet容器,容器再根据配置的servlet进行处理,将结果返回给用户
一个tomcat里可以放n个应用,一个应用也可以有n个servlet
javaweb应用的生命周期是由Servlet容器来控制的,包括以下以下三个步骤
1.启动
tomcat启动的时候会自动启动放在/webapps里的Web应用,步骤如下
(1).将web.xml加载到内存中
(2)为应用创建ServletContext对象<---一个应用一个,应用的所有的servlet共享一个
(3).初始化Filter (过滤器,拦截一些请求)
(4).初始化Servlet init()(web.xml中配置<load-on-startup>值不小于0的,负数的servlet是在用户初次调用的时候才初始化)
2.运行
servlet处于待命状态,调用servlet的service()方法
3.终止
(1) 销毁所有运行时servlet destroy()
(2) 销毁Filter
(3) 销毁与JavaWeb应用相关的对象,如ServletContext
以下实例来自《Tomcat与Java Web开发技术详解》一书
1.搭建好一个web工程
2.创建servlet
package com.my.demo.system;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.GenericServlet;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;public class lifeServlet extends GenericServlet {private int initVar=0;private int serviceVar=0;private int destroyVar=0;private String name;public void init(ServletConfig config) throws ServletException{super.init(config);name=config.getServletName();initVar++;System.out.println(name+"init():Servlet被初始化了"+initVar+"次");}public void destory() {destroyVar++;System.out.println(name+"destory():Servlet被销毁了"+destroyVar+"次");}@Overridepublic void service(ServletRequest request, ServletResponse response)throws ServletException, IOException {serviceVar++;System.out.println(name+"service():Servlet共响应了"+serviceVar+"次");String content1="初始化:"+initVar;String content2="响应:"+serviceVar;String content3="销毁:"+destroyVar;PrintWriter out=response.getWriter();out.print("<html><head><title>LifeServlet</title>");out.print("</head><body>");out.print("<h1>"+content1+"</h1>");out.print("<h1>"+content2+"</h1>");out.print("<h1>"+content3+"</h1>");out.print("</body></html>");out.close();}}
3.修改web.xml,配置两个Servlet
<servlet> <servlet-name>demo</servlet-name> <servlet-class>com.my.demo.system.lifeServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping><servlet-name>demo</servlet-name><url-pattern>/demo</url-pattern> </servlet-mapping> <servlet> <servlet-name>demo1</servlet-name> <servlet-class>com.my.demo.system.lifeServlet</servlet-class> </servlet> <servlet-mapping><servlet-name>demo1</servlet-name><url-pattern>/demo1</url-pattern> </servlet-mapping>4.启动,分别访问 localhost:8080/应用名/demo 和 localhost:8080/应用名/demo1
- JavaWeb应用的生命周期
- javaWeb应用的生命周期
- Servlet技术浅析(六)之-----JavaWeb应用的生命周期和Servlet的生命周期
- JavaWeb-022-HttpSession的生命周期
- Javaweb-ServletContext的应用
- JavaWeb中Servlet的生命周期方法
- javaWEB总结(21):HttpSession的生命周期
- ios应用的生命周期
- ios应用的生命周期
- ios应用的生命周期
- 应用的生命周期
- iOS应用的生命周期
- android 应用的生命周期
- 应用的生命周期
- iOS 应用的生命周期
- javaweb中的cookie的应用
- JavaWeb的Filter过滤器应用
- JavaWeb----Cookie的两个应用
- 第九周项目三 利用二叉树遍历解决思想问题
- 第十三周项目—算法验证(2)
- 明德扬FPGA-培训班公开课-第05期-《边缘检测工程讲解》
- 状态机生成工具——SMC
- [文摘]信息熵
- javaWeb应用的生命周期
- IntelliJ Idea 常用快捷键列表
- 第十一周-项目4-1-应用图的深度优先遍历思路求解问题
- vue 快捷轮播组件代码实现
- LeetCode--122. Best Time to Buy and Sell Stock II
- 第十二周项目一
- 【tomcat】tomcat项目共享jar配置
- 第十三周项目一C/C++验证算法
- CentOS 7.0关闭默认防火墙启用iptables防火墙