在当今的环境下,绝大多数的 Web 站点希望根据用户和会话来动态显示内容。大多数内容,例如图片、文本和广告条,可由 HTML 制作人员来轻松完成制作。所以我们需要将“静态” HTML 文件内容与可存取或生成动态内容的“指引项”混合起来。
JavaServer Page 技术可以满足这种需求。它提供了服务器端脚本来生成包含静态和动态内容的 Web 页面。
关键概念:
- Servlet
- JavaBean(tm) 组件
- 语法
当一个用户在浏览器中输入 URL时,一个请求被创建并送到服务器上。依据请求的类型,服务器的响应可能是存放在服务器上的静态 HTML 页面,或者是从多方汇集的动态内容。
直到今天,生成动态内容的最普通方法是通过 Common Gateway Interface, 也称为 CGI。CGI 程序(通常用 C 或者 Perl 编写) 通过以 HTML 表单形式读入用户的输入,然后返回定制的 HTML 页面。但是,CGI 有一个缺点:对于用户的每个请求,CGI 脚本必须经过“载入”、“运行” 和“调出”。这非常低效。
另一种生成动态内容的方法是使用 Java servlet。servlet 是 Java 程序可以被载入到一个应用服务器中,例如WebSphere Application Server。 servlet 可以完成 CGI 脚本的功能,但是它们驻留在服务器的内存中。因此,servlet 要对用户的响应更为及时。
JSP 技术提供了一种混合HTML 和 Java servlet 编程的环境。JSP 页面是纯文本文件而且看起来很类似 HTML 页面。HTML 通过新的标记得以扩展,新的标记指明一个 servlet 控制动态内容的生成的程序逻辑。
如果用户请求的信息被包含在驻留于 HTTP 服务器的静态页面中,响应将是驻留页面的 HTML 版本。对动态响应而言,将从 HTTP 服务器产生一个调用到 WebSphere Application Server,或其他任意一种应用服务器,它们将管理 JSP 页面和 servlet。应用服务器可以被配置成预先载入 Java servlet 来实现对用户响应速度的提高,甚至对于第一个用户的请求。
JSP 页面被一次编译为 servlet 并被载入到内存。如果 JSP 页面有了新版本,应用服务器将编译新的版本然后载入对应的新 servlet。
为什么要使用JSP呢?
首先,Java 编程语言具有 "Write Once, Run Anywhere(tm)"(书写一次,任意运行) 的特性。