开发servlet的三种方式
1.实现servlet接口
init初始化,就是把servlet装载到内存中,只会被调用一次
getServletConfig获取servletConfig对象
service主要的服务方法,放业务逻辑,每次都会被调用
getServletInfo得到servlet配置信息
destroy销毁该servlet,从内存中清除掉
2.继承GenericServlet
只需要重写service抽象方法。
3.继承HttpServlet
首先它是继承自GenericServlet
然后它有很多http相关的方法,post,get,put等待
用户可以根据自己需要来实现这些方法
每个过来的请求都会调用service方法,最后service会根据不用的请求分发到不同的地方去做。
HttpServlet中service方法的源码显示根据不同的请求类型来调用相应的方法。
且HttpServlet把原来的ServletRequest 请求直接强转换成HttpServletRequest然后再去调用它正真的service方法。
public void service(ServletRequest req,ServletResponse res)
throws ServletException,IOException
{
HttpRequest request;
HttpResponse response;
try
{
req = (HttpRequest)request;
res = (HttpResponse)response;
}catch(ClassCastException e)
{
throw new ServletException("non-HTTP request response");
}
service(request,response);
}
Servlet生命周期
1,初始化阶段 调用init()方法
2,响应客户请求阶段 调用service()方法
3,终止阶段 调用destroy()方法
(初始化之前还有加载和实例化servlet步骤。对每个servlet,容器使用Class.forName()对其加载并实例化。因此servlet类有一个不带参数的public构造方法,但一般java编译器添加默认构造方法。)
网友评论