code: @Override
      public void service(ServletRequest req, ServletResponse res)
          throws ServletException, IOException
      {
          HttpServletRequest  request;
          HttpServletResponse response;
          
          if (!(req instanceof HttpServletRequest &&
                  res instanceof HttpServletResponse)) {
              throw new ServletException("non-HTTP request or response");
          }
  
          request = (HttpServletRequest) req;
          response = (HttpServletResponse) res;
  
          service(request, response);
      }
docs: Dispatches client requests to the protected
  <code>service</code> method. There's no need to
  override this method.
  
  @param req   the {@link HttpServletRequest} object that
  contains the request the client made of
  the servlet
  
  @param res   the {@link HttpServletResponse} object that
  contains the response the servlet returns
  to the client
  
  @throws IOException   if an input or output error occurs
  while the servlet is handling the
  HTTP request
  
  @throws ServletException  if the HTTP request cannot
  be handled or if either parameter is not
  an instance of its respective {@link HttpServletRequest}
  or {@link HttpServletResponse} counterparts.
  
  @see javax.servlet.Servlet#service