隨筆 - 4, 文章 - 2, 評論 - 36, 引用 - 0
          數據加載中……

          糾正一些關于Servlet的誤解

              剛才看了幾篇對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);
           }


          }

          posted on 2008-11-21 12:55 幽夢新影 閱讀(1175) 評論(1)  編輯  收藏

          評論

          # re: 糾正一些關于Servlet的誤解[未登錄]  回復  更多評論   

          嘿嘿。。可能最上面的那些關于servlet的講解比較大眾化吧。。。LZ你說的這三種方法中用得最多的也應該是第三種吧。
          2008-11-22 18:13 | lepoke

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 大荔县| 大姚县| 通辽市| 镇赉县| 吴旗县| 新乐市| 新野县| 江陵县| 龙门县| 修水县| 彭泽县| 手游| 呼伦贝尔市| 贵德县| 乌拉特前旗| 天镇县| 乐至县| 集安市| 安阳县| 达尔| 平原县| 邻水| 庄浪县| 南京市| 四子王旗| 天门市| 博乐市| 永吉县| 大同市| 石台县| 南靖县| 昭平县| 武隆县| 六盘水市| 航空| 芦山县| 永新县| 廊坊市| 那曲县| 吉水县| 文水县|