1.servlet就是一个普通的类,只是这个类实现了servlet规范
1) public class HelloServlet implements Servlet{}
2) 在web.xml中去配置和映射servlet
<!-- 配置和映射servlet -->
<!-- 注册一个servlet -->
<servlet>
<!-- 注册名 -->
<servlet-name>hello</servlet-name>
<!-- servlet的全类名 -->
<servlet-class>com.hpe.servlet.HelloServlet</servlet-class>
</servlet>
<!-- 映射一个servlet -->
<servlet-mapping>
<!-- 必须和注册名一致 -->
<servlet-name>hello</servlet-name>
<!-- 浏览器访问路径 /代表当前web应用的根目录 -->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
浏览器访问路径 http://localhost:8080/servlet01/hello
2.servlet容器负责管理servlet的生命
servlet生命周期方法:
1)构造方法:只被调用了一次,只有第一次请求servlet的时候,创建servlet实例,说明servlet是单例的
2)init:只被调用了一次,在创建完实例以后执行,用于初始化servlet
3)service:被调用多次,每次请求都会调用service方法,用于处理逻辑响应结果
4)destroy方法;只被调用了一次,项目卸载的时候执行,用于释放资源
3.load-on-startup:可以指定servlet创建时机
1)配置在
<servlet>
<servlet-name>one</servlet-name>
<servlet-class>com.hpe.servlet.OneServlet</servlet-class>
<load-on-startup>-1</load-on-startup>
</servlet>
2)load-on-startup:
如果是负数,如果是负数,在第一次请求servlet时,创建实例和初始化
如果是正数或0,在当前web应用程序加载时创建实例和初始化,数字越小越早被创建
4.实现servlet的第二种方式,继承GenericServlet
1).是servlet和servletConfig接口的实现类,是一个抽象类,其中service方法是一个抽象方法
2).在该类中声明一个ServletConfig成员变量,并且在init(ServletConfig config)里面完成了赋值
3).利用ServletConfig成员变量实现了ServletConfig里面所有的方法
4).还定义了init(),如果子类需要在初始化时完成一些初始化功能,可以重写init方法,
并且在init(ServletConfig config)里面调用了init方法,
注意 init(ServletConfig config)才是生命周期方法,重写的init方法不是生命周期方法,就是一个普通方法
5.实现servlet的第三种方式,
继承httpServlet,最常用的一种方式
继承GenericServlet,他是针对于http协议定制的