In JDK 1.0 (for which servlets were originally written), constructors for dynamically loaded Java classes (such as servlets) couldn't accept arguments. So, in order to provide a new servlet any information about itself and its environment, a server had to call a servlet's init() method and pass along an object that implements the ServletConfig interface.
see:doc
In detail,If you want to dynamically load a Java class, you should use the following method:
Class<MyClass> clazz = MyClass.class;
Constructor<MyClass> ctor = clazz.getDeclaredConstructor(String.class);
MyClass instance = ctor.newInstance("foo");
But, the method which returns a Constructor object in the Class class has been written since jdk1.1.
In jdk1.0, you can only use the following parameterless method:
Object newObject = Class.forName(strFullyQualifiedClassName).newInstance();