当一个请求到达服务端,服务器怎么处理?
当一个请求到达服务端时,由服务端的引擎来进行分析。它根据工程名找到工程, 然后拿到URL的资源地址和web.XML文件的所有的进行对比,和哪一个对比上就找到了具体的servlet。然后就去创建servlet对象,进行处理。
找到servlet,创建servlet对象后,他的生命周期?
当servlet引擎找到具体的servlet类后,就开始调用它的无参构造器,来创建这样一个对象,创建这个对象之后,调用它的init方法(带参的init()方法,init()方法只会调用一次),之后立刻调用service方法进行处理。处理完之后就一直等待下一个请求的到来。当我们停止应用或关掉服务器的时候,调用destroy方法。servlet实体创建后一直存在于服务器内存中,直到服务器关闭或者应用停止。(不论有多少人在访问)
url-parttern写法(两种)
- 1.以/开头:/代表的是工程路径(/工程名称) 必须要加/
- 2.以开头:必须要加后缀名(后缀名任意) 后缀名不能用号
3.如果只配置一个/:此Servlet就是一个默认的servlet,用来处理所有的匹配不上的请求
注意:/*.后缀名 此种情况不允许
/* 表示任意
优先级:精确匹配 > 以/开头的匹配 > 以*号开头的匹配