什么是Servlet?
Servlet是在服务器上运行的小程序。一个Servlet就是一个Java类。
Tomcat容器等级
Tomcat的容器分为四个等级,Servlet的容器管理Context容器,一个Context对应一个Web工程。一个Context拥有若干个wrapper,wrapper代表一个单独的servlet。
自定义一个Servlet
(1)需要继承HttpServlet,它是一个抽象类,是实现了http协议的Servlet
(2)重写doGet()或doPost()方法
(3)在web.xml中注册Servlet,以下是在web.xml中注册Servlet的小例子
<servlet>
<servlet-name>helloServlet</servlet-name><!--名字-->
<servlet-class>Servlet.HelloServlet</servlet-class><!--Serlvlet所在的类,类名要写完整,包括包名-->
</servlet>
<servlet-mapping>
<servlet-name>helloServlet</servlet-name><!--名字,与上面是对应的--><url-pattern>/servlet/HelloServlet</url-pattern><!--是超链接里访问Servlet的路径-->
</servlet-mapping>
response.setContentType("text/html;charset=utf-8");
Servlet生命周期(Servlet类由我们写,但是Servlet对象由Tomcat创建,并且Servlet中的大部分方法也是由Tomcat来创建)
1.初始化阶段void init(ServletConfig config)
2.响应客户端请求阶段,调用void Service(ServletRequest request,ServletResponse response)方法。由Service()方法根据提交方式选择执行doGet()或者doPost()方法。
3.终止阶段,停止服务器时(stop server)调用 void destroy()方法。
创建Servlet实例的两个时机
1.Servlet容器启动时自动装载某些Servlet,创建Servlet实例。只需要在web.xml中配置,在<Servlet></Servlet>之间添加如下代码:<load-on-startup>给一个非负整数</load-on-startup>
数字越小表示优先级别越高,即小的先创建,大的后创建
2.客户端首次请求某个Servlet时,系统创建该Servlet的实例。
Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化,init()方法只执行一次。