JSP在第一次使用时,会被编译成Servlet(Java类),在以后的使用过程中,如果JSP不变,那么JSP将不会在编译;否则的话,系统会再次对JSP进行编译。所以JSP在第一次被访问时,响应速度慢。也许是因为JSP只是第一次被访问时才被编译,所以JSP的性能要优于CGI,PHP,ASP等页面吧。
JSP程序由JSP Engine先将它转换成Servlet代码,接着将它编译成类文件执行。(JSP编译 原理)
JSP具有良好的平台无关性,它与操作系统无关,与服务器无关,真的是非常High!
JSP具有良好的可扩展性,比如它的tag扩展机制,将JSP页面的职责与Servlet职责分离,简化了页面开发。
在JSP里面,我们可以编译Java代码,如果我们使用<%! int i=10;>的方式写代码,那么这些代码生成在成员变量里面。
如果我们使用<%%>那么生成的代码段是生成在私有变量里面,创建的代码段是在Service里面。
JSP原理:JSP是由服务器端创建的,在我们调用JSP时,首先服务器(Servlet)Service方法,然后创建HttpServletRequest和HttpServletResponse对象,然后调用HttpServlet的Service方法(doGet/doPost),再调用JSPService(request,response)方法,输出HTML。
JSP有九个内置对象:out,request,response,pageContext,session,application,config,exception,page.