在Servlet体系中,除了实现servlet接口,还可以通过继承GenericServlet或HttpServlet类实现编写
一、Servlet接口
servlet接口是整个servlet的核心。它是所有Servlet类必须直接或者间接实现的一个接口,其内部需要实现的5个方法分别关乎着我们servlet的生命周期和业务实现。
init(... ) 当Servlet第一次被请求时,Servlet容器就会开始调用这个方法来初始化一个Servlet对象出来
service(...) 每当请求Servlet时,Servlet容器就会调用这个方法
destroy(...) 当要销毁Servlet时,Servlet容器就会调用这个方法
getServletInfo( ...) 这个方法会返回Servlet的一段描述,可以返回一段字符串。
getServletConfig(... )这个方法会返回由Servlet容器传给init( )方法的ServletConfig对象。
二、servlet的生命周期
由于servlet本身没有main()方法,不能独立运行,他的运行完全由Servlet容器来进行控制和调度。Servlet 生命周期可被定义为从创建直到毁灭的整个过程。
@WebServlet(value="/s01")
public class Servlet01 implements Servlet{
@Override
public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub
System.out.println("初始化时调用");
}
@Override
public ServletConfig getServletConfig() {
// TODO Auto-generated method stub
return null;
}
@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("开启服务时调用");
}
@Override
public String getServletInfo() {
// TODO Auto-generated method stub
return null;
}
@Override
public void destroy() {
// TODO Auto-generated method stub
System.out.println("销毁时调用");
}
}
三、GenericServlet抽象类
GenericServlet实现了servlet接口,并且实现了init()和destroy()方法,简化了我们的开发流程
1、实现GenericServlet
2、配置web.xml,完成对程序的访问
四、HttpServlet类
HttpServlet是继承了GenericServlet类,这是一个抽象类。因为我们的请求一般都是Http请求,为了匹配Http请求,于是就有了HttpServlet。为了能够更加方便的处理来自浏览器的数据和将数据写会到浏览器,HttpServlet类引用了HttpServletRequst和HttpServletResponse两个类来处理和相应数据。