Class PutHandler

  • All Implemented Interfaces:
    Handler

    public class PutHandler
    extends java.lang.Object
    implements Handler
    Simple PUT and DELETE method handler. Create, update, or delete files implied by the URL. returns: (for PUT)
    • 201 Created
    • 204 No Content - it worked
    • 415 Invalid file suffix (no mime type found)
    • 403 bad file permissions
    • 409 conflict suffix does not match mime type
    • 500 server error: can't complete file write
    • 501 invalid content-range
    (for DELETE)
    • 204 No Content - delete succeeded
    • 403 forbidden - no delete permissions
    • 404 not found - no file to delete
    To be uploaded, the file suffix must match the content type defined on the server and the content type of the request.
    root
    The document root. Can be used to override the default document root.
    prefix, suffix, glob, match
    Specifies which URL's trigger this handler. (See MatchString).

    TODO:

    • allow the deletion of empty directories
    • support byte-ranges for updating
    NOTES:
    This handler mostly overlaps the functionallity of the PublishHandler, and they should be combined.
    • Constructor Summary

      Constructors 
      Constructor Description
      PutHandler()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean init​(Server server, java.lang.String prefix)
      Initializes the handler.
      boolean respond​(Request request)
      Responds to an HTTP request.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • PutHandler

        public PutHandler()
    • Method Detail

      • init

        public boolean init​(Server server,
                            java.lang.String prefix)
        Description copied from interface: Handler
        Initializes the handler.
        Specified by:
        init in interface Handler
        Parameters:
        server - The HTTP server that created this Handler. Typical Handlers will use Server.props to obtain run-time configuration information.
        prefix - The handlers name. The string this Handler may prepend to all of the keys that it uses to extract configuration information from Server.props. This is set (by the Server and ChainHandler) to help avoid configuration parameter namespace collisions.
        Returns:
        true if this Handler initialized successfully, false otherwise. If false is returned, this Handler should not be used.
      • respond

        public boolean respond​(Request request)
                        throws java.io.IOException
        Description copied from interface: Handler
        Responds to an HTTP request.
        Specified by:
        respond in interface Handler
        Parameters:
        request - The Request object that represents the HTTP request.
        Returns:
        true if the request was handled. A request was handled if a response was supplied to the client, typically by calling Request.sendResponse() or Request.sendError.
        Throws:
        java.io.IOException - if there was an I/O error while sending the response to the client. Typically, in that case, the Server will (try to) send an error message to the client and then close the client's connection.

        The IOException should not be used to silently ignore problems such as being unable to access some server-side resource (for example getting a FileNotFoundException due to not being able to open a file). In that case, the Handler's duty is to turn that IOException into a HTTP response indicating, in this case, that a file could not be found.