J2EE课程设计《项目开发指导》——第7章 提高Web应用系统的响应性能(第2部分)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第7章提高Web应用系统的响应性能(第2/3部分)

1.1应用FreeMarker静态模板框架技术

1.1.1FreeMarker静态模板框架技术概述

1、FreeMarker是目前比较流行的静态模板框架

FreeMarker是一种基于Java技术实现的静态模板框架,它允许表示层的开发人员通过使用简单而强大的模板语言来引用在Java程序代码中所定义的对象;FreeMarker也允许将Web应用的表示层设计和开发实现同应用系统的业务逻辑功能实现的代码相互分离;FreeMarker模板使用运行在Servet容器中的Servlet程序所提供的各种模型数据动态地生成HTML页面文件内容、并在浏览器中显示输出。

由于模板语言具有简单高效和编译处理速度快,并且其输出的速度接近于静态HTML 页面的速度。因此,利用FreeMarker静态模板框架能够大大地提高页面显示的性能。

2、为什么要应用FreeMarker静态模板框架

在Web应用系统的表示层开发实现中,不仅需要达到将表现逻辑与业务逻辑相分离的设计目标,也还希望能够获得较好的系统响应性能和较快的页面显示效果。而常规的JSP 页面文件由于在第一次被请求加载时,需要被编译为*.class的类代码文件,所以会出现很明显的响应延迟现象。

而由于FreeMarker静态模板文件无需编译、并且FreeMarker与J2EE Servlet容器无关——因为它并不需要关联与Http或Servlet等有关的信息,因此在技术实现中能够达到将Web应用系统中的表现逻辑与业务逻辑相互分离的效果;另外,也能够分离Web应用系统中的表示层开发人员和业务处理层开发人员各自的工作职责——页面美工只需专注关心Web应用系统中的各个页面模板的设计和开发实现,而系统业务逻辑处理功能的Java程序员则也只需要专注于自身的业务逻辑的功能实现代码。

3、FreeMarker静态模板适合作为Web应用系统中的一个组件

读者可以通过下图7.8所示的FreeMarker官方网站下载FreeMarker静态模板的系统包文件,下载完FreeMarker系统包文件后再进行解压缩该系统包文件,就能够获得FreeMarker 的系统JAR包freemarker-2.3.8.jar文件;最后再将freemarker-2.3.8.jar文件加入到Web应用系统的WEB-INF/lib目录中。

图7.8 FreeMarker官方网站信息的局部截图

4、将FreeMarker静态模板集成到Eclipse开发工具中

目前在网站中还提供有将FreeMarker静态模板集成到Eclipse开发工具中的Eclipse插件,读者可以根据下图7.9所示的Eclipse插件下载信息的网站截图下载该Eclipse插件。这个插件可以帮助开发人员直接在Eclipse开发工具中编辑FreeMarker的模板文件,并提供有语法高亮显示、语法错误提示、大纲视图等有助于模板文件编辑的各种开发方面的功能支持。

图7.9 下载Eclipse开发工具中的Eclipse插件的局部截图

当然,读者也可以直接在Eclipse开发工具中打开主菜单条中的【Help】菜单内的【Software updates】子菜单;然后再进一步选择下一级的【Find and install】菜单项目,并弹出一个对话框;在该对话框中选中单选项【Search for new features to install 】,并点击【New Remote Site】项目;最后可以输入“FreeMarker”作为名字以及输入更新的网站地址"/eclipse/update" 作为更新的网络地址——请见下图7.10所示,点击【Next】下一步按钮或【完成】按钮开始下载该插件、并自动地安装到Eclipse开发工具中,完成插件的安装。

图7.10 更新Eclipse开发工具的远程访问信息

5、FreeMarker静态模板工作的基本原理

基于FreeMarker静态模板的页面(*.ftl)在被请求处理时,首先由FreeMarker引擎程序将在由Java Servlet 等程序(*.java)所提供的各种模型数据组合在一起,共同构成最终的输出页面内容,最后向浏览器响应输出。请求者在浏览器端最终看到的是标准的HTML 页面文件的内容。FreeMarker静态模板工作的基本原理示图请见下图7.11中的图示。

图7.11 体现FreeMarker静态模板工作的基本原理截图

6、FreeMarker静态模板中的数据模型

在FreeMarker静态模板文件中可以使用Java程序中的Map集合、String字符串等类型的对象。在FreeMarker静态模板框架中使用的数据模型其实是实现了freemarker.template.TemplateModel 接口的类对象,但开发人员也可以使用集合对象作为FreeMarker的数据模型对象、并包装系统中的自定义的类型的对象。

因为FreeMarker中使用的数据模型通常会被FreeMarker静态模板程序在内部自动地转换为TemplateModel 类型的对象——也就是对象包装功能(Object Wrapping)。它可以透明地把任意类型的Java对象转化成TemplateModel 接口类型的对象实例。

1.1.2在基于标准Web技术的程序中应用FreeMarker模板

1、在项目中添加与FreeMarker有关的系统JAR包文件

在项目中首先需要添加与FreeMarker有关的系统JAR包文件到Web应用系统中的WEB-INF/lib目录中——请见下图7.12中所示的freemarker-2.3.8.jar文件。

2、在项目中添加一个JSP页面文件

在项目的userManage目录下添加一个名称为fmtWebUserLogin.jsp的JSP页面文件。该页面文件作为本示例的请求页面、并设计该页面的内容,请见【例7–1】所示的页面内容示例——在该页面中添加有一个实现登陆功能的表单,该表单向系统中的某个名称为fmtServletAction的Servlet组件发送请求——请见其中的黑体部分标识的代码。

【例7–1】包含有实现登陆功能表单的页面示例

<%@ page language="java" pageEncoding="GB18030"%>

My JSP 'fmtUserLogin.jsp' starting page

您的名称:

您的密码:

相关文档
最新文档