当前位置: 首页 > 后端技术 > PHP

你知道一个可以通过URL访问的Servlet是如何实现的吗?

时间:2023-03-29 21:03:59 PHP

Servlet生命周期实现实例及初始化时序ready/call/service阶段销毁时序案例实战Servlet生命周期Servlet没有main()方法,不能独立运行。它的运行完全由Servlet引擎控制和调度。所谓生命周期是指servlet容器从何时创建servlet实例,到调用其方法处理请求,再到销毁其实例的整个过程。(这里讨论默认生命周期)实例和初始化时机当一个请求到达容器时,容器寻找servlet对象是否存在,如果不存在,则创建一个实例并初始化它。在ready/call/service阶段,请求到达容器,容器调用servlet对象的service()方法。处理请求的方法在整个生命周期中可以被多次调用;HttpServlet的service()方法会根据请求方法()或doPost()方法调用doGet。但是这两个do方法默认会抛出异常,需要子类重写。销毁时机当容器关闭时(应用程序停止时),程序中的Servlet实例将被销毁。通过Servlet中的生命周期方法可以观察到上面的生命周期。Servlet中有3个生命周期方法,它们不是用户手动调用的,而是容器在特定时间自动调用的。通过观察这三个生命周期方法,就可以观察到Servlet的生命周期。init方法在Servlet实例创建完成后执行(证明Servlet已经创建实例)publicvoidinit(ServletConfigconfig)throwsServletException{System.out.println("实例已创建");}service方法,每次有请求到达某个Servlet方法时执行,用于处理请求(证明Servlet已经被服务)out.println("服务已被调用");}destroy方法,当Servlet实例被销毁时执行(证明Servlet实例被销毁)publicvoiddestroy(){System.out.println("Aninstancehasbeendestroyed");}Servlet的生命周期可以分为四个步骤:servlet类加载→实例化→服务→销毁。下面我们来描述一下Tomcat和Servlet是如何工作的,看下面的时序图:1.WebClient向Servlet容器(Tomcat)发送Http请求2.Servlet容器接收来自WebClient的请求3.Servlet容器创建一个HttpRequest对象,将WebClient请求的信息封装到这个对象中。4.Servlet容器创建一个HttpResponse对象。相关方法,获取Http请求信息7、HttpServlet调用HttpResponse对象的相关方法生成响应数据8、Servlet容器将HttpServlet响应结果发送给WebClientExtendedServlet配置Servlet除了基本的访问信息外,还可以配置初始化参数,自启动,等等,一个Servlet可以配置多个访问路径,也可以使用通配符“*”。基本配置hellowebcom.xxx.web.HelloWebhelloweb/helloweb/*初始化参数hellowebcom.xxx.web.HelloWebparam11param22你好eb/helloweb/*自启动hellowebcom.xxx.web.HelloWebparam11param222helloweb/helloweb/*