什么是servlet
servlet 是运行在 Web 服务器中的小型 Java 程序。servlet 通常通过 HTTP(超文本传输协议)接收和响应来自 Web 客户端的请求。
要实现此接口,可以编写一个扩展 javax.servlet.GenericServlet 的一般 servlet,或者编写一个扩展 javax.servlet.http.HttpServlet 的 HTTP servlet。
此接口定义了初始化 servlet 的方法、为请求提供服务的方法和从服务器移除 servlet 的方法。这些方法称为生命周期方法,它们是按以下顺序调用的:
①构造 servlet,然后使用 init 方法将其初始化。
②处理来自客户端的对 service 方法的所有调用。
③从服务中取出 servlet,然后使用 destroy 方法销毁它,最后进行垃圾回收并终止它。
除了生命周期方法之外,此接口还提供了 getServletConfig 方法和 getServletInfo 方法,servlet 可使用前一种方法获得任何启动信息,而后一种方法允许 servlet 返回有关其自身的基本信息,比如作者、版本和版权。
servlet 生命周期
实例化
初始化
服务
销毁
package com.zrxjuly.servlet;
import java.io.IOException;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class ServletDemo1 implements Servlet {
/**
* 生命周期方法,实例化对象。
* 第一次访问时调用
*/
public ServletDemo1() {
System.out.println("--------servletdemo1---------");
}
/**
* 生命周期方法,初始化对象。
* 第一次访问时调用
*/
public void init(ServletConfig arg0) throws ServletException {
System.out.println("----------init初始化--------");
}
/**
* 生命周期方法,服务方法
* 接收用户请求并做出响应。
* 每次访问时都会被调用,是多线程的。
*/
public void service(ServletRequest arg0, ServletResponse arg1)
throws ServletException, IOException {
System.out.println("-------hello servlet--------");
}
/**
* 生命周期方法,销毁对象
* 应用卸载时调用
*/
public void destroy() {
System.out.println("------destroy销毁------");
}
public ServletConfig getServletConfig() {
return null;
}
public String getServletInfo() {
return null;
}
}
让servlet在服务器启动时创建
<servlet>
<servlet-name>servletDemo1</servlet-name>
<servlet-class>com.zrxjuly.servlet.ServletDemo1</servlet-class>
<!-- 使当前servlet在启动时创建,数值越小,优先级越高 -->
<load-on-startup>2</load-on-startup>
</servlet>