code: public void handlePut(HttpServletRequest request, HttpServletResponse response, String pathInContext, Resource resource) throws ServletException, IOException
      {
          boolean exists = resource != null && resource.exists();
          if (exists && !passConditionalHeaders(request, response, resource))
              return;
  
          if (pathInContext.endsWith("/"))
          {
              if (!exists)
              {
                  if (!resource.getFile().mkdirs())
                      response.sendError(HttpResponse.__403_Forbidden, "Directories could not be created");
                  else
                  {
                      response.setStatus(HttpResponse.__201_Created);
                      response.flushBuffer();
                  }
              }
              else
              {
                  response.setStatus(HttpResponse.__200_OK);
                  response.flushBuffer();
              }
          }
          else
          {
              try
              {
                  int toRead = request.getContentLength();
                  InputStream in = request.getInputStream();
                  OutputStream out = resource.getOutputStream();
                  if (toRead >= 0)
                      IO.copy(in, out, toRead);
                  else
                      IO.copy(in, out);
                  out.close();
  
                  response.setStatus(exists ? HttpResponse.__200_OK : HttpResponse.__201_Created);
                  response.flushBuffer();
              }
              catch (Exception ex)
              {
                  log.warn(LogSupport.EXCEPTION, ex);
                  response.sendError(HttpResponse.__403_Forbidden, ex.getMessage());
              }
          }
      }
docs: /* -------------------------------------------------------------------