servlet是什么?工作原理以及生命周期

1、你对servlet的理解?或者servlet是什么?
    1)servlet接口定义的是一套处理网络请求的规范,所有实现servlet的类,都需要实现它那五个方法,其中最主要的是两个生命周期方法 init()初始化和destroy()销毁,还有一个处理请求的service()可以重写service方法完成对get和post请求的响应,以及HttpServlet 重写doGet和doPost方法。
    2)Servlet没有主方法没有入口,所以必须存放在一个web容器中——这个容器就是一个WEB服务器,比如tomcat。
    3)把Servlet放到tomcat中以后,tomcat就是是与客户端直接打交道的家伙,他监听了端口;HttpServletRequest请求过来后,根据url等信息,确定要将请求交给哪个servlet去处理,然后调用那个servlet的service方法去处理;至于具体是get请求还是post请求它里面自己去判断;但是最终还是调用doGet()方法;方法返回一个HttpServletResponse对象,tomcat再把这个对象返回给客户端。

2、servlet的工作原理与生命周期?
    1)工作原理:
        ①Servlet接收和响应客户请求的过程,首先客户发送一个请求,Servlet是调用service()方法对请求进行响应的,service()方法中对请求的方式进行了匹配,选择调用doGet,doPost等这些方法,然后再进入对应的方法中调用逻辑层的方法,实现对客户的响应。我们每次定义一个Servlet的时候,都必须实现doGet或doPost等这些方法。
        ②Servlet没有主方法,不能够独立的运行,它的运行需要容器的支持,Tomcat是最常用的JSP/Servlet容器。Servlet运行在Servlet容器中,并由容器管理从创建到销毁的整个过程。这时就有了Servlet的生命周期。
    2)生命周期:
        ①Servlet生命周期分为四个部分:1.加载和实例化 ->2.初始化 - > 3.请求处理 -> 4.销毁
        ②Servlet中三个方法涉及到Servlet的生命周期,分别是init(),service(),destroy()方法。
        ③具体实现:
            1.加载和实例化:当检测到需要Servlet的第一个请求时,读取xml文件找到要加载的servlet类,创建Servlet实例。?加载一般是在运行tomcat容器时来完成,将servlet类加载到tomcat中,或者是客户端发来请求时也可以
            2.初始化:也就是init()方法--->初始化信息一般是读取配置信息、读取初始化参数等,对于每一个servlet实例,inin()方法值被调用一次。就是在用户第一次请求到来的时候执行,如果不配置load-on-startup;那么该servlet会在请求第一次到来初始化。如果配置了初始化的相关操作【load-on-startup】会在服务器启动时候执行;如果设置了多个那么servlet加    载的优先级设置的值越小优先级越高。
            3.请求处理:也就是service()方法--->调用Servlet的service()方法对请求进行处理,在调用该方法之前,init()方法必须先成功执行。每次请求到来都会执行,并且在init()方法之后执行。可以不用重写这个方法,因为父类已经很好的实现了service()方法;会自动根据提交方式的不同调用以之对应的doGet()或者duPost()方法。
            4.销毁:也就是destroy()方法--->作用回收关闭相关资源;在更新代码时候执行。整个Servlet的生命周期结束。一般tomcat关闭,servlet就会被销毁。

猜你喜欢

转载自blog.csdn.net/qq_35316228/article/details/84400728