jsp概论

JSP,ASP,PHP是最流行的三种动态语言。JSP在Java的基础上,有着强大的优势,非常灵活,可以通过JavaBean,表达式语言,标签库进行扩展。

在第一次请求时JSP文件编译为servlet,然后由servlet去处理请求,所以jsp本质上是一个servlet。

盗个图,从图中可以看出最后生成的类hello_jsp继承HttpJspBase,而后者继承HTTPServlet。

jsp概论

jsp比servlet好用,因为它处理html更加方便,而且内置了许多服务器端组件,方便程序员使用。

Jsp有四大域:application,session,request,page

Jsp内置的9大对象为:application,session,request,response,out,page,pageContext,exception,config。

config即servlet中init方法的参数。

重点介绍几个对象:

pageContext代表jsp页面上下文,即一个运行环境。通过它可以获得其他内置对象如PageContext.getServletContext获取到的是application对象,还有setAttribute/get方法,另外findAttribute会按照page,request,session,application的顺序查找属性。

out是一个输出流,java.io.Writer的子类,以字符流的形式将数据写入客户端。包含默认大小8kb的缓冲区。使用形式为out.print()

exception是异常对象,web容器一旦捕获到异常就会赋给该对象。它只能在错误页面使用(page指令指明属性isErrorPage=true)