一些关于Servlet的误解的纠正
来源:优易学  2011-11-24 13:44:26   【优易学:中国教育考试门户网】   资料下载   IT书店
  刚才看了几篇对Servlet总结的文章,发现他们都有异曲同工之处,上来就是这样写的:
  Servlet三个要素:
  1.必须继承自HttpServlet
  2.必须实现doGet()或者doPost()
  3.必须在web.xml中配置Servlet
  <servlet>
  <servlet-name> </servlet-name>
  <servlet-class> </servlet-class>
  </servlet>  
  <servlet-mapping>
  <servlet-name> </servlet-name>
  <url-pattern> </url-pattern>
  </servelt-mapping>
  有谁说了编写一个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:
  import javax.servlet.*;
  import java.io.*;
  public class TestServlet implements Servlet{
  public void init(ServletConfig config) throws ServletException{
  System.out.println("init");
  }
  public ServletConfig getServletConfig(){
  reture null;
  }
  public void service(ServletRequest req,ServletResponse res)
  throws ServletException,IOException{
  //这里可以实现请求后要做的内容
  PrintWriter out = response.getWriter();
  out.println("Hello World!");
  }
  public String getServletInfo(){
  return null;
  }
  public void destroy(){
  System.out.println("destory");
  }
  }
  (二)继承抽象类GenericServlet编写一个Serlvet,这个相对比实现Servlet接口要容易一点,GenericServlet类中只有一个抽象方法,即service(ServletRequest req, ServletResponse res),只要实现这个方法就行了,下面看例子:
  import javax.servlet.*;
  import java.io.IOException;
  public TestGenericServlet extends GenericServlet{
  public abstract void service(ServletRequest req,ServletResponse res)
  throws ServletException,IOException{
  PrintWriter out = response.getWriter();
  out.println("Hello World!");
  }
  }
  (3)继承HttpServlet类编写Servlet应该是最容易的,而且是最常见的,我们一般要编写Servlet直接继承这个类就行了,重写doGet()或者doPost()方法即可,下面看例子:
  import javax.servlet.http.*;
  import javax.servlet.*;
  import java.io.*;
  public TestHttpServlet extends HttpServlet{
  public void doGet(HttpServletRequest request, HttpServletResponse response)
  throws IOException, ServletException {
  response.setContentType("text/html;charset=gb2312");
  PrintWriter out = response.getWriter();
  out.println("<html>");
  out.println("<head>");
  out.println("<title>HelloWorld</title>");
  out.println("</head>");
  out.println("<body bgcolor=\"white\">");
  out.println("<hr>");
  out.println("HelloWorld");
  out.println("</body></html>");
  }
  public void doPost(HttpServletRequest request, HttpServletResponse response)
  throws IOException, ServletException {
  doGet(request, response);
  }
  }

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训