A JSP is basically the source code for a servlet. The server simply provides you with certain shortcuts. For example, without the special tags (scriptlets, taglibs, directives, etc), the content is simply assumed to be sent to the response. The difference is that the server will compile your JSP into a .class file for you at execution time (if it has been changed or has not been previously compiled). From then on, it is treated the same as a servlet.
"Write beautiful code; then profile that beautiful code and make little bits of it uglier but faster." --The JavaPerformanceTuning.com team, Newsletter 039.