On the face of it, they are two different thinggies.
I think your question reframed would be 'When should I directly create a bean object by importing the class and instantiating it in my jsp as opposed to using the useBean functionality for the same '.
The first thing to know here is that useBean doesnt always create a bean instance .
In a standard MVC2 pattern, a request is received by a Servlet, which has handlers (classes) with methods that access the model and returns the data to the Servlet as a data transfer object.
The Servlet then places this data as a scoped attribute
Next it forwards the request to the jsp
The jsp, now uses useBean to retrieve the bean stored in request attribute by the servlet. A new bean is not created, provided the value of the "id" attribute matches the attribute name of the bean stored in request. . The useBean functionality is to easily give you a handle to the bean object set in scope by the servlet and to access the data from the bean by way of jsp:getProperty.