什么是Servlet
Servlet是运行在服务端的java小程序,是sum公司提供的一种规范(接口,servlet接收响应请求、filter过滤器、listener监听器),用来处理客户端请求、响应给浏览器的动态资源
Servlet的实质上就是java代码,通过java的API动态的向客户输出内容,以后写的程序就不在本地执行了,而是编译成字节码,放到服务器上来执行,编写程序时,不需要有main函数了。因为写完后,就把编写的程序编译成字节码,放到服务器上面。当前发送就一个请求的时候,服务器就会按照一定的规则调用编写的代码
Servlet生命周期
默认的情况下第一次访问的时候创建,可以通过配置文件设置服务器启动的时候就创建
init:serlvet对象创建的时候调用,默认第一次访问时创建
service:每次请求都会执行一次
destory:servlet对象销毁的时候执行,默认服务器关闭时销毁
load-on-startup:对象在服务器启动时就创建,值为数字代表优先级,数据越小,优先级越高,不能为负数
Serevlet配置信息
<init-params>
<init-name>值</init-name>
<init-value>值</init-value>
config参数:该servlet的配置信息
获得web.xml当中的参数
初始化参数,获取ServletContext对象
url-patten
完全匹配<url-patten>/firstServlet</url-patten>
目录匹配<url-patten>/my/xq/*</url-patten>
扩展名匹配<url-patten>*.myxq</url-patten>
缺省Servlet
访问的资源不存在时,就会找缺省的地址
<url-patten>/</url-patten>
全局的web.xml
对于部署在服务器上的所有应用都生效
先到自己工程当中找web.xml配置,再到全局的web.xml找配置,如果两个当中有相同的配置,自己工程当中的配置会生效
静态资源加载的过程
在path后面写的静态资源名称index.html或者其他的.hmtl它都会找ur-patten当中没有匹配的内容,如果有,就加载对应的servlet,如果没有就到自己配置中找缺省的url-patten,如果自己配置文件当中没有缺省的,就会找全局配置缺省的url-patten,在全局配置当中有一个缺省的url-patten 对应的是default的Servlet,defaultServlet内部会到当前访问的工程跟目录当中找对应的名称的静态资源,如果有,就把里面的内容逐行读出来,响应给浏览器,如果没有,就会报404错误