Servlet实现的三种方式

Servlet实现一共有三种方式:

Servlet --> GenericServlet --> HttpServlet 

Servlet是GenericServlet的父类

GenericServlet是HttpServlet的父类

1.实现 javax.servlet.Servlet接口

public class mysevlet implements Servlet{

	public void init(ServletConfig config) throws ServletException {
		// TODO Auto-generated method stub
		
	}

	public ServletConfig getServletConfig() {
		// TODO Auto-generated method stub
		return null;
	}

	public void service(ServletRequest req, ServletResponse res)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		
	}

	public String getServletInfo() {
		// TODO Auto-generated method stub
		return null;
	}

	public void destroy() {
		// TODO Auto-generated method stub
		
	}
	
}

 2.继承GenericServlet类

   GenericServlet抽象类中只有一个抽象方法service()方法,适配器模式

public abstract class GenericServletextends java.lang.Objectimplements Servlet, ServletConfig, java.io.Serializable
package com.zk.myservlet;

import java.io.IOException;

import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class myServlet extends GenericServlet{

	@Override
	public void init() throws ServletException {
		// TODO Auto-generated method stub
		super.init();
		System.out.println("GenericServlet init...初始化");
	}
	
	@Override
	public void service(ServletRequest arg0, ServletResponse arg1)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("GenericServlet servlet demo2");
	}

	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		super.destroy();
		System.out.println("GenericServlet destory...结束");
	}
	
}

  3.继承HttpServlet类

  public abstract class HttpServletextends GenericServletimplements java.io.Serializable
public class myservlet2 extends HttpServlet{

	int num=1;
	//servlet->GenericServlet->HttpServlet
	@Override
	public void init() throws ServletException {
		// TODO Auto-generated method stub
		super.init();
		System.out.println("HttpServlet...init...初始化");
	}
	
	@Override
	public void service(ServletRequest arg0, ServletResponse arg1)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		num++;
		System.out.println(num);
		System.out.println("HttpServlet...servlet demo2");
	}

	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		super.destroy();
		System.out.println("HttpServlet...destory...结束");
	}

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		super.doGet(req, resp);
		
		System.out.println("********hello********");
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		super.doPost(req, resp);
		System.out.println("**********world*********");
	}
	
	
}

  

原文地址:https://www.cnblogs.com/longlyseul/p/9911670.html