JSF will automatically create a session the first time you reference a session-scoped backing bean. Since this is exactly the same session object that non-JSF applications use, you can also create the session in the usual way if you need to, but most of the time you won't need to. Unless you're mixing JSF and non-JSF code.
The secret of how to be miserable is to constantly expect things are going to happen the way that they are "supposed" to happen.
You can have faith, which carries the understanding that you may be disappointed. Then there's being a willfully-blind idiot, which virtually guarantees it.