Because the container, who generates the
Java code from the JSP, will probably do its own initialization/destruction stuff in those methods. The container deals with methods related ot the lifecycle of the
servlet.
If you override them, its important stuff is not going to be called. But the container says "ok, you want to do some initialization yourself too ? I'll give you a chance. Make a jspInit method, and I'll call it. You have my words".