Another way is the "smartconfig" API provided by the SDK. It requires an app on your phone/tablet which send specially crafted wifi packets, that contain your wifi credentials. This method could configure multiple devices at once, but requires an app to be installed by the user and can only configure wifi (while the webpage setup could configure any settings you like).
The esphttpd project includes a demo with setup page and I belive an example for smartconfig is included in the SDK.