一、概念——Servlet是java类,且必须符合一定规范:
a.必须继承javax.servlet.http.httpservlet类;
b.重写其中的doGet()或doPost()方法。
doGet():接收并处理所有get()方式的请求;
doPost():接收并处理所有post()方式的请求;
除此之外,要想使用Servlet,还需要:
Servlet2.5:配置web.xml
Servlet3.0 注解@WebServlet
&&小知识点:<url-pattern>/xxxxx</url-pattern>其实是和<a href="xxxxx"></a>这两个是互相对应的,特别留意!
二、Servlet的工作流程:
Servlet2.5流程:
a.请求 被<url-pattern>拦截 ,根据上面的小知识点;
b.根据<servlet-mapping>中的<servlet-name> 去匹配 <servlet> 中的<servlet-name>;
c.然后寻找到<servlet-class>,求中将请求交由该<servlet-class>执行。
Servlet3.0流程:
直接扫描注解,找到匹配的注解,再找到匹配的java类;
三、Servlet的生命周期
加载
初始化: init() ,该方法会在 Servlet被加载并实例化的以后 执行,并且默认只执行一次,除非重启服务器。
可以通过设置load-on-startup来设置成启动服务器自动加载,而不是默认的请求时加载。
服务 :service() ->doGet() doPost()方法
销毁 :destroy(), Servlet被系统回收时执行
卸载
四、Servlet的继承关系
&&小插曲:空实现类的意义,由于继承接口需要重写所有方法,当只需要接口某个方法的时候,总是继承所有方法显得特别麻烦,因此可以通过一个空实现类实现该接口,当需要这个接口的某个方法转变为继承这个空实现类,并且重写该方法。