转载

编写Servlet的三种方法

有谁说了编写Servlet必须继承自HttpServlet类,必须实现doGet()或者doPost() ,难道实现Servlet接口就不行了吗?

其实编写Servlet主要有三种方法,一是实现Servlet接口,二是继承抽象类GenericServlet,三是继承HttpServlet类。下面分别用这三种方法去实现Servlet:

(一)要从实现Servlet接口来编写Servlet是比较麻烦的,因为必须实现Servlet接口中的所有方法,Servlet接口主要定义了五个方法,它们分别为:

(1)void init(ServletConfig config) throws ServletException
(2)ServletConfig getServletConfig()
(3)void service(ServletRequest req,ervletResponse res) throws ServletException,IOException
(4)String getServletInfo()
(5)void destroy()

下面用实现Servlet接口的方法编写Servlet:

  1. import javax.servlet.*;  
  2. import java.io.*;  
  3. public class TestServlet implements Servlet{  
  4.     public void init(ServletConfig config) throws ServletException{  
  5.         System.out.println("init");  
  6.         }  
  7.     public ServletConfig getServletConfig(){  
  8.         reture null;  
  9.         }  
  10.     public void service(ServletRequest req,ServletResponse res)   
  11.         throws ServletException,IOException{  
  12.             //这里可以实现请求后要做的内容  
  13.             PrintWriter out = response.getWriter();  
  14.       out.println("Hello World!");  
  15.  
  16.             }  
  17.     public String getServletInfo(){  
  18.         return null;  
  19.         }  
  20.     public void destroy(){  
  21.         System.out.println("destory");  
  22.         }  
  23.     }  

(二)继承抽象类GenericServlet编写Serlvet,这个相对比实现Servlet接口要容易一点,GenericServlet类中只有一个抽象方法,即service(ServletRequest req, ServletResponse res),只要实现这个方法就行了,下面看例子:

  1. import javax.servlet.*;  
  2. import java.io.IOException;  
  3.  
  4. public TestGenericServlet extends GenericServlet{  
  5.     public abstract void service(ServletRequest req,ServletResponse res)  
  6.                       throws ServletException,IOException{  
  7.      PrintWriter out = response.getWriter();  
  8.      out.println("Hello World!");                       
  9.      }  

(3)继承HttpServlet类编写Servlet应该是最容易的,而且是最常见的,我们一般要编写Servlet直接继承这个类就行了,重写doGet()或者doPost()方法即可,下面看例子:

  1. import javax.servlet.http.*;  
  2. import javax.servlet.*;  
  3. import java.io.*;  
  4.  
  5. public TestHttpServlet extends HttpServlet{  
  6.     public void doGet(HttpServletRequest request, HttpServletResponse response)  
  7.         throws IOException, ServletException {  
  8.   response.setContentType("text/html;charset=gb2312");  
  9.   PrintWriter out = response.getWriter();  
  10.  
  11.   out.println("<html>");  
  12.   out.println("<head>");  
  13.   out.println("<title>HelloWorld</title>");  
  14.   out.println("</head>");  
  15.   out.println("<body bgcolor=/"white/">");  
  16.   out.println("<hr>");  
  17.   out.println("HelloWorld");  
  18.   out.println("</body></html>");  
  19.  }  
  20.  
  21.  public void doPost(HttpServletRequest request, HttpServletResponse response)  
  22.    throws IOException, ServletException {  
  23.   doGet(request, response);  
  24.  }  
  25.  

正文到此结束
Loading...