2020-03-17

(一)Servlet的生命周期

一、Servlet的生命周期概述

1、什么是生命周期生命周期:一个对象从创建到销毁的过程

2、Servlet的生命周期

(1)Servlet生命周期:Servlet对象从创建到销毁的过程

(2)Servlet中有init、service、destroy方法,这几个方法称为是生命周期相关的方法

    1)Servlet是在第一次被访问的时候会被实例化,只要Servlet一被实例化,那么Ser

          vlet中的init方法就会执行(init只会执行一次)

    2)之后再有任何一次从客户端发送来的请求,那么Servlet中的service方法就会执行

          (在service方法的内部,会根据请求的方式不同,调用不同的doXxx方法)

    3)当Servlet从服务器中移除,或者服务器关闭的时候,Servlet对象就被销毁,里面

        的destroy方法就会执行,然后垃圾回收就会将其回收掉

3、代码演示Servlet的生命周期

(二)Servlet的启动时加载一、为什么使用启动时加载

          Servlet对象是第一次被访问的时候会被创建的,init方法就会执行,假设在init方法

          中做了一些比较耗时的操作(比如:加载了一些配置文件,并且解析可能需要花费

          3秒钟,那么第一个用户第一次访问这个Servlet的时候,需要等待3秒钟),如何使

        第一个用户在第一次访问的时候,不需要花费这么长时间?就需要我们的Servlet在

        启动时加载二、什么是启动时加载Servlet默认是在第一次访问的时候创建的对象,

          现在通过一个配置,将Servlet的实例化的过程,放在服务器启动的时候(让服务器

      启动的时候就创建Servlet的对象)。如果这样做,那么之前耗时花费的时间就会在服务

        器启动的时候一起消耗掉了。对于用户来讲,就不需要额外花费这个时间了三、配置完

          成启动时加载优先级:数字越小越优先,不能比tomcat默认的Servlet优先级

  (1)大

(三)Servlet的访问路径的配置一、Servlet中的urlPatter的配置

1、完全路径匹配以

          /开始,比如:

      /ServletDemo1 /aaa/ServletDemo2http://localhost:8080/web01/ServletDemo5

2、目录匹配以

        /开始,以/*结束,比如:

    /* /aaa/* /aaa/bbb/*http://localhost:8080/web01/aaa/asdf

3、扩展名匹配

    不能以/开始,以*开始,比如:

    *.action *.do *.jsphttp://localhost:8080/web01/asdf.abc

二、访问的优先级完全路径匹配 > 目录匹配 > 扩展名匹配

  (四)ServletConfig对象(了解)一、ServletConfig对象的概述ServletConfig是用来获

            取Servlet的相关配置的对象二、获得ServletConfig对象getServletConfig()方法三

          、ServletConfig对象的API获得Servlet的初始化参数获得ServletContext对象获得

            Servlet的名称

四、演示ServletConfig的API在web.xml中配置初始化参数 在Servlet中的代码实现

(五)ServletContext对象之获取web项目信息一、ServletContext对象概述

1、什么是ServletContextServletContext

      :Servlet的上下文对象。ServletContext对象对Servlet之前和之后的内容都知道,这

          个对象一个Web项目只有一个。在服务器启动的时候,为每个Web项目创建一个单

        独的ServletContext对象2、ServletContext对象的作用

  (1)作用一:用来获取Web项目信息

        1)因为一个Web项目只有一个ServletContext对象,所以这个对象对整个项目的相关

            内容都是了解的

        2)方法:获取文件的MIME的类型getMimeType(String file)获取Web项目请求的工

          程名getContextPath()获取Web项目的全局初始化参数getInitParameter(String name)getInitParameterNames()


你可能感兴趣的:(2020-03-17)