1、创建方式二
通过继承javax.servlet.GenericServlet抽象类,创建与访问协议无关的Servlet。
继承GenericServlet抽象类
在Servlet程序中,只需要重写为客户请求提供服务的service方法,在GenericServlet抽象类中,这是一个抽象方法。
代码示例如下:
@WebServlet(description = "通过GenericServlet抽象类派生的Servlet程序", urlPatterns = { "/shouhuola/Servlet02" })
public class Servlet02 extends GenericServlet {
@Override
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
// TODO Auto-generated method stub
arg1.setContentType("text/html; charset=utf-8");
arg1.getWriter().println("这是通过GenericServlet抽象类派生的Servlet程序");
}
}
2、创建方式三
通过继承javax.servlet.http.HttpServlet抽象类,创建支持HTTP访问协议的Servlet。
继承HttpServlet抽象类
在Servlet程序中,可以根据客户的请求方式(例如:GET、POST、HEAD、PUT、DELETE、TRACE、OPTIONS),重写为客户请求提供服务的doXxx方法;也可以重写其父类的service方法。
若重写了其父类的service方法,则由service方法为客户请求提供服务。
若在service方法中调用了父类的service方法,例如:
super.service(req, resp);
那么,service方法会根据HTTP协议的请求方式,调用对应请求方式的处理方法doXxx()。
代码示例如下:
@WebServlet(description = "通过HttpServlet抽象类派生的Servlet程序", urlPatterns = { "/shouhuola/Servlet03" })
public class Servlet03 extends HttpServlet {
private static final long serialVersionUID = 1L;
public Servlet03() {
super();
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/html; charset=utf-8");
response.getWriter().println("这是通过HttpServlet抽象类派生的Servlet程序");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}