what is JSF in real? what is the core difference between JSF and struts?
You could have a look at this page that described the difference between struts and JSF:
The page is a bit old but still contains some good basic information. As you can see in the page JSF grew out of Struts and the JSF components are now supported in Struts.
Struts can also be seen in a number of commercial products behind the scenes. For instance BEA WebLogic uses struts to define the workflow of portlets in their portal product.
In addition to BEA, Oracle's JDeveloper 10g uses Struts in it's ADF framework and visual design environments.
One key distinction that I see between Struts and JSF is JSF's emphasis on the presentation layer with the idea being that vendor's will help proliferate a much larger collection of JSF UI Component libraries than what comes in it's RI.
For example Oracle is also working on merging their existing presentation framework UIX, which was originally built for Oracle Applications, into a standard, JSF compliant component library.
MyFaces.org is another cool example of independently developed custom JSF components.