servlet执行流程&生命周期

简介: servlet执行流程&生命周期

1、localhost:8080访问的是服务器,后面是服务器的项目,demo是servlet中webSerlet()配置的路径

2、servlet被访问成功之后,servlet就自动被执行了,serices想要自动执行,必须要有一个对象,叫servlet对象,他是有web服务器创建的,Tomcat,并且方法也是他调用的

3、Tomcat调用serivce()方法之后,客户端就能够响应,返回对应的数据,就是前端

4、Request就能够返回浏览器中对应的一些信息了,Request请求数据,response响应数据

servlet生命周期,他由Tomcat什么时候,被创建,什么时候,被销毁

1. package com.itheima.web;
2. 
3. import javax.servlet.*;
4. import javax.servlet.annotation.WebServlet;
5. import java.io.IOException;
6. /**
7. * Servlet生命周期方法
8. */
9. @WebServlet(urlPatterns = "/demo2",loadOnStartup = 1)
10. public class ServletDemo2 implements Servlet {
11. 
12. /**
13.      *  初始化方法
14.      *  1.调用时机:默认情况下,Servlet被第一次访问时,调用
15.      *      * loadOnStartup: 默认为-1,修改为0或者正整数,则会在服务器启动的时候,调用
16.      *  2.调用次数: 1次
17.      * @param config
18.      * @throws ServletException
19.      */
20.     public void init(ServletConfig config) throws ServletException {
21.         System.out.println("init...");
22.     }
23. 
24. /**
25.      * 提供服务
26.      * 1.调用时机:每一次Servlet被访问时,调用
27.      * 2.调用次数: 多次
28.      * @param req
29.      * @param res
30.      * @throws ServletException
31.      * @throws IOException
32.      */
33.     public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
34.         System.out.println("servlet hello world~");
35.     }
36. 
37. /**
38.      * 销毁方法
39.      * 1.调用时机:内存释放或者服务器关闭的时候,Servlet对象会被销毁,调用
40.      * 2.调用次数: 1次
41.      */
42.     public void destroy() {
43.         System.out.println("destroy...");
44.     }
45.     public ServletConfig getServletConfig() {
46. return null;
47.     }
48. 
49.     public String getServletInfo() {
50. return null;
51.     }
52. 
53. 
54. }

1、第一个阶段:被访问时才被创建

1.1 servlet启动的时候很耗时,因此我们可以提前创建:

1. @WebServlet(urlPatterns = "/demo1",loadOnStartup = 1)
2. loadOnstartup的取值有两类情况
3.  (1)负整数:第一次访问时创建Servlet对象
4.  (2)0或正整数:服务器启动时创建Servlet对象,数字越小优先级越高

2、 第二个阶段初始化(servlet对象被创建的那个过程,只会被执行一次):这个阶段在servlet被创建之后,自动的被Tomcat来进行调用,将来这个方法我们要复写他,并且要写一个逻辑,比如将来我们在servlet要用到一些资源,我们要加载资源文件

3、请求处理阶段,serive()被调用时用

4、destroy中销毁init调用的资源

使用案例init,

只要这个方法被调用,就执行一次

相关文章
|
2月前
|
Java 应用服务中间件 数据库连接
探索研究Servlet 生命周期
【9月更文挑战第22天】
46 7
|
4月前
|
Java 数据库连接 开发者
Java中的Servlet生命周期详解
Java中的Servlet生命周期详解
|
5月前
Servlet的生命周期
Servlet的生命周期
|
5月前
|
Java
servlet生命周期面试题
servlet生命周期面试题
|
4月前
|
Java 数据库连接 开发者
Java中的Servlet生命周期详解
Java中的Servlet生命周期详解
|
4月前
|
XML 存储 前端开发
JavaEE:Servlet创建和使用及生命周期介绍
JavaEE:Servlet创建和使用及生命周期介绍
|
6月前
|
存储 Java 应用服务中间件
Servlet执行流程&生命周期&方法介绍&体系结构、Request和Response的功能详解(2)
Servlet执行流程&生命周期&方法介绍&体系结构、Request和Response的功能详解
67 2
|
3月前
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
Java服务器端技术:Servlet与JSP的集成与扩展
33 3
|
3月前
|
存储 缓存 前端开发
Servlet与JSP在Java Web应用中的性能调优策略
Servlet与JSP在Java Web应用中的性能调优策略
33 1
|
3月前
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
基于Servlet和JSP的Java Web应用开发指南
49 0