Servlet应该是个接口,不同服务器实现的方式不同,比如Tomcat就应该对应Tomcat实现Servlet的源代码
用IDE去看服务器的源码,我还没试过;

解决方案 »

  1.   

    Servlet的实现类源码在Apache的Tomcat那里下载
    (http://tomcat.apache.org/download-70.cgi),
    我也是找了一晚上才醒悟过来!
      

  2.   

    反编译如下,没有注释, 代码风格不那么美观啦;
    还是期望能找到官方的源码,很多人说官网上有,就是找不到呀!
     protected void service(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException
      {
        long lastModified;
        String method = req.getMethod();    if (method.equals("GET")) {
          lastModified = getLastModified(req);
          if (lastModified == -1L)
          {
            doGet(req, resp);
          } else {
            long ifModifiedSince = req.getDateHeader("If-Modified-Since");
            if (ifModifiedSince < lastModified / 1000L * 1000L)
            {
              maybeSetLastModified(resp, lastModified);
              doGet(req, resp);
            } else {
              resp.setStatus(304);
            }
          }
        }
        else if (method.equals("HEAD")) {
          lastModified = getLastModified(req);
          maybeSetLastModified(resp, lastModified);
          doHead(req, resp);
        }
        else if (method.equals("POST")) {
          doPost(req, resp);
        }
        else if (method.equals("PUT")) {
          doPut(req, resp);
        }
        else if (method.equals("DELETE")) {
          doDelete(req, resp);
        }
        else if (method.equals("OPTIONS")) {
          doOptions(req, resp);
        }
        else if (method.equals("TRACE")) {
          doTrace(req, resp);
        }
        else
        {
          String errMsg = lStrings.getString("http.method_not_implemented");
          Object[] errArgs = new Object[1];
          errArgs[0] = method;
          errMsg = MessageFormat.format(errMsg, errArgs);      resp.sendError(501, errMsg);
        }
      }
      

  3.   

    有必要去研究HttpServlet的源码吗?你知道原理就行了啊
    如果以后在开发中让你去用国外的一个包文件
    难道你非要把里面的代码都研究透了才能动手写代码吗?
    对于实际的web项目或者web系统的话。都没有必要去研究HttpServlet。
    加油。