4.1 概述

第3章学习了一种重要的Java EE组件技术——Servlet,从本章开始将学习另外一种Java EE组件技术——JSP(Java Server Pages)。JSP是一种实现普通静态HTML和动态HTML混合编码的技术。JSP页面文件通常以.jsp为扩展名,而且可以安装到任何能够存放普通Web页面的地方。虽然从代码编写来看,JSP页面更像普通Web页面而不像Servlet,但实际上,JSP最终会被转换成标准的Servlet。JSP到Servlet的转换过程一般在出现第一次页面请求时进行。因此有了前面Servlet编程的基础,理解和掌握JSP编程就容易多了。

JSP设计的目的在于简化表示层的展示。JSP并没有增加任何本质上不能用Servlet实现的功能。但是,在JSP中编写静态HTML更加方便,不必再用println语句来输出每一行HTML代码。更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开。例如,由页面设计专家进行HTML设计,同时留出供Java程序员插入动态内容的空间。

除了普通HTML代码之外,嵌入JSP页面的其他成分主要有如下三种:脚本元素(Scripting Element)、指令(Directive)和动作(Action)。脚本元素用来嵌入Java代码,这些Java代码将成为转换得到的Servlet的一部分;JSP指令用来从整体上控制Servlet的结构;动作用来引入已有的组件来控制Web容器的行为。另外,为了简化脚本元素,JSP定义了一组可以直接使用的内部对象变量。在新的JSP规范中,还可以使用表达式语言(Expression Language, EL)来进一步简化脚本元素编写。Java EE规范中最新的JSP版本为2.2。