A type attribute can be an abstract class or an interface. If the bean already exists you might not care what the real type it is, so it might be useful to use type without class.
One more thing using type (without class) is significant only when the bean already exists in the given scope. Because no new bean is created in this case.
When only type is specified, the generated servlet will explicitly throw an exception if the JavaBean does not exist. And it is a good thing because you might not know the real type of the bean and you don't want a new bean of "type" type created.