javaWeb_Servlet_Servlet基础_Servlet配置以及Servlet生命周期

Wesley13
• 阅读 512

Servlet基础_Servlet配置以及Servlet生命周期

1.servlet方法和一般的java方法不同之处

(1).现象
我们看见一个显现,启动tomcat服务器的时候,我们所调用的这一个Servlet方法已经被执行了,并打出了要输出的部分信息。我们之前是
自己启动,自己创建实例,自己调用方法,字节结束方法,但是servlet就自己调用了方法,其实这是服务器执行的,因为Servlet是运行在
服务器端的应用程序,Servlet容器会帮我们创建Servlet实例,调用Servlet方法,在结束的时候会调用销毁方法。

(2).Servlet容器做的操作
A:创建Servlet实例,并调用Servlet的相关生命周期方法。(即先init()-->Service()--->destory())
B:如jsp,Filter,listener,Tag等运行在Servlet容器中的都受到Servlet容器管理。

2.Servlet相关的生命周期方法

(1).构造器:第一次请求servlet的时候,只会被调用一次,创建Servlet的实例,调用构造器。同时也说明Servlet是单实例的。(这一个时候就
存在线程安全的问题也就是说不提倡使用全局变量在Servlet里面)。

(2).init():只会被调用一次,也即是创建好实例以后会被调用,用于初始化当前的Servlet,注意:是可传递参数的初始化,一般就是配置信息。

(3).Service():会被多次调用,这个就是用于响应请求的。

(4).destory():只会被调用一次,在当前的servlet所在的web被卸载调用之前会被调用,用于释放servlet占用的资源。

注意:以上的方法都是被servlet容器所调用。

3.特殊的参数:load-on-startup

(1).作用:指定该servlet在容器中被创建的时机。配置在servlet的节点中。参数如果为负数,那么会被第一次请求的时候被创建实例,
如果不为负数,那么会被servlet容器加载的时候创建实例,且数据值越小越早被创建。

(2).实例:

Manager com.action.Manager 1

4.servlet容器响应servlet请求的过程

(1).Servlet引擎检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行(4),否则执行(2)
(2).装载并创建该Servlet的一个实例对象:调用该Servlet的构造器。
(3).调用Servlet实例对象的init()方法。
(4).创建一个用于封装请求的ServletRequest对象和一个代表响应消息的ServletResponse对象,然后调用
Servlet的service()方法并将请求和响应对象作为参数传递进去。
(5).WEB应用程序被停止请求和重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的
destory()方法。

5.Servlet的注册以及Servlet的运行

(1).Servlet程序必须通过Servlet容器来启动运行,并且存储目录需要有特殊要求,通常
需要存储在<WEB应用程序目录>\WEB-INF\classes\目录中。

(2).Servlet程序必须在WEB应用程序的web.xml文件中进行注册和映射其访问路径,才可以被Servlet引擎记载和被外界访问。

(3).servlet的注册和映射

A:注册
一个Servlet元素用于注册一个Servlet,它包含俩个主要的子元素:,分别用于设置Servlet的注册名称,
和Servlet的完整类名。

B:映射
一个元素用于映射一个已注册的Servlet的一个对外访问路径,它包含俩个子元素:
分别用于指定Servlet的注册名称和Servlet的对外访问路径。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
虾米大王 虾米大王
1年前
java代码073
code073.javapackagepack02;importjava.io.IOException;importjava.io.PrintWriter;importjava.util.UUID;importjavax.servlet.ServletException;importjavax.servlet.annotation.Multip
Wesley13 Wesley13
2年前
Servlet的多线程机制与线程安全
Servlet的多线程机制     Servlet体系结构是建立在Java多线程机制之上的,它的生命周期是由Web容器负责的。当客户端第一次请求某个Servlet时,Servlet容器将会根据web.xml配置文件实例化这个Servlet类。当有新的客户端请求该Servlet时,一般不会再实例化该Servlet类,也就是有多个线程在使用这个实例。Ser
Wesley13 Wesley13
2年前
Java日期时间API系列31
  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前
Stella981 Stella981
2年前
SpringBoot连接常见设置
SpringBoot集成了Servlet容器,因此我们可以方便的启动一个容器,并访问其中的接口。那么如何控制Servlet容器中的线程池呢?可以通过如下配置进行控制server:tomcat:appcectcount:1minspacethreads:1maxthreads:
Stella981 Stella981
2年前
Servlet概述
一、Servlet概述1.sun公司提供的动态web资源开发技术。本质是上一段java小程序,要求这个小程序必须实现Servlet接口,以便服务器能够调用。2.开发Servlet的两个步骤实验:Servlet的快速入门(1)步骤一:写一个java程序实现Servlet接口(此处直接继承了默认
Easter79 Easter79
2年前
Tomcat的工作模式
Tomcat作为Servlet容器,有3种工作模式:独立的Servlet容器、进程内的Servlet容器和进程外的Servlet容器。1.独立的Servlet容器   独立的Servlet容器是Tomcat的默认模式。在这种模式下,Tomcat可以作为独立的JavaWeb服务器,Servlet容器作为构成Web服务器的一部分而存在。2.进
Easter79 Easter79
2年前
SpringBoot连接常见设置
SpringBoot集成了Servlet容器,因此我们可以方便的启动一个容器,并访问其中的接口。那么如何控制Servlet容器中的线程池呢?可以通过如下配置进行控制server:tomcat:appcectcount:1minspacethreads:1maxthreads:
Stella981 Stella981
2年前
Servlet容器,过滤器,拦截器,监听器整理
Servlet容器JavaServlet是与平台无关的服务器端组件,运行于Servlet容器中(如Tomcat),Servlet容器负责Servlet和客户端的通信以及调用Servlet的方法,Servlet和客户端的通信采用“请求/响应”的模式。Servlet可完成以下功能:1、创建并返回基于客户请求的动态HTML页面。2、创建可以嵌入到