No, it's not mandatory. If you're learning servlets/jsp now, you won't need to implement the interface. You will have to when you're bean is put in a session in a distrubuted environment, if you want it to be migrated properly.
If you plan on storing these beans in session, it's a good idea to make them serializable. Some containers (Tomcat, that I know of) will serialize all sessions to disk when the app or container is shut down for a re-start. It then reads them back when it starts up.
If any object bound to session, directly or indirectly, doesn't implement serializable, this whole operation fails.
Also, as Ulf mentioned, in a clustered environment, Tomcat uses serialization for session replication.
I'm sure most containers have similar functionality.
Is it not one of the primary requirements of being a bean that it is Serializable?
The serializable interface is more of a marker than anything else. It just says "this class can be serialized". Most of the time the default implementation is just fine - so just make your bean "implement java.io.Serializable" and you're pretty much done.