the different is, in the statement
<jsp:usebean id ="person" class = "foo.person" scope="request">
<jsp:setproperty name ="person" property=name value=fred"/>
</jsp:usebean>
because <jsp:setproperty name ="person" property=name value=fred"/>
in the body of <jsp:useBean.. then person.name is just assigned by Fred if bean person is not exist. imagine if person.name is already set from previos JSP or
servlet and no need to overwriiten by new value.
But in this statement,
<jsp:usebean id ="person" class = "foo.person" scope="request">
<jsp:setproperty name ="person" property=name value=fred"/>
person.name is always write by 'Fred'. What happen if in person.name is already assign by 'Anshu'?. it will overwritten also, so yu will never get 'Anshu' in person.name after the statement.
Hope this help Anshu..
Joko