1、第 1 章 绪论 第 1 页 共 31 页 第 1 章 绪论 1.1 选题背景 Internet 是目前世界上最大的计算机互联网络,它遍布全球,将世界各地各种规模的网络连接成一个整体。作为 Internet 上一种先进的,易于被人们所接受的信息检索手段, World Wide Web(简称 WWW)发展十分迅速,成为目前世界上最大的信息资源宝库。据估计,目前 Internet 上已有上百万个 Web 站点,其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域,其用户群十分庞大,因此,建设一个好的 Web 站点对于一个机构的发展十分重要。近年来,随着网 络用户要求的不断
2、提高及计算机科学的迅速发展,特别是数据库技术在Internet 中的广泛应用, Web 站点向用户提供的服务将越来越丰富,越来越人性化。 我们发现这样一个事实,一个用户在访问一个网站时一般来讲只对该网站的部分内容感性趣,而且这种兴趣会持续一段时间。这点启发了我们,如果能根据用户的喜好为不同的用户显示其个性化的页面,即着重显示该用户感兴趣的内容,将为用户节约大量的检索时间,而且这样的网页显然是更具有吸引力的。一些站点已经在这方面作出了一定的尝试,通常采用的方法是,在用户登陆时为其提供一系列的选项,使 用户能够对站点进行一些自主的设置。这样做能够使站点呈现一定程度的个性化,但是对用户来讲,还是比较
3、烦琐,而且在用户了解一个站点前让其对站点进行设置,其结果未免有些粗糙。于是我们构想了这样一种方案,对用户登陆后的动作进行跟踪,分析,发掘用户点击的规律,即用户先后点击的关联规则,这样,在用户点击一个主题(链接)之后,系统能够自动生成一页面,其中包含了该主题下用户经常关注的内容(若干链接),这样便在无须用户作出任何额外工作的情况下实现了为用户量身订做的个性化页面。 要实现这样的功能,离不开后台数据库的支持。用户验证 信息,收集到的用户点击信息,主题层次信息,分析得出的关联规则表等大量的数据都由数据库管理系统管理。本文中数据库服务器端采用了 MySql 数据库作为 JDBC 数据源,并以先进的 J
4、DBC 技术进行数据库存取等操作,使 Web 与数据库紧密联系起来。 整个个性化页面生成系统主要由使用 Dreamweaver_MX 开发的关联规则采掘系统和利用 Freemarker+Tomcat 技术实现的个性化 Web 页面生成器两部分组成。关联规则采掘系统对数据库中的历史记录进行分析,产生用户关联规则表;页面生成器则负责记录用户行为和根据关联规则 表动态生成用户个性化 Web 页面。二者通过数据库服务器和 Web 服务器连接。 本文作者主要完成 Web 服务器端的用户管理、帖子管理、版面管理、数据库管理、浏览和查找、短消息功能等设计、实现与完善以及整个实验网站的组织建立和测试工作。 河
5、北师范大学职技学院学士学位论文 第 2 页 共 31 页 第 2 章 系统技术及运行环境 2.1 Freemarker 技术简介 FreeMarker 允许 Java servlet 保持图形设计同应用程序逻辑的分离,这是通过在模板中密封 HTML 完成的。模板用 servlet 提供的数据动态地生成 HTML。模板语言是强大的直观的,编译器速度快,输出接 近静态 HTML 页面的速度。 FreeMarker 是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java 编写 。 FreeMarker 被设计用来生成 HTML Web 页面,特别是基于 MVC 模式的应用程序 。 虽然
6、FreeMarker 具有一些编程的能力,但通常由 Java 程序准备要显示的数据,由 FreeMarker 生成页面,通过模板显示准备的数据 。 FreeMarker 不是一个 Web 应用框架,而适合作为 Web 应用框架一个组件 。 FreeMarker 与容器无关,因为它并不知道 HTTP 或 Servlet; FreeMarker 同样可以应用于非 Web 应用程序环境 。 FreeMarker 更适合作为 Model2 框架 (如 Struts)的视图组件,你也可以在模板中使用 JSP 标记库 , FreeMarker 是免费的 。 Freemarker 程序的优点 : 1、通用目
7、标 ( 1) 能够生成各种文本: HTML、 XML、 RTF、 Java 源代码等等 。 ( 2) 易于嵌入到你的产品中:轻量级;不需要 Servlet 环境 。 ( 3) 插件式模板载入器:可以从任何源载入模板,如本地文件、数据库等等 。 ( 4) 你可以按你所需生成文本:保存到本地文件;作为 Email 发 送;从 Web 应用程序发送它返回给 Web 浏览器 。 2、强大的模板语言 ( 1) 所有常用的指令: include、 if/elseif/else、循环结构 。 ( 2) 在模板中创建和改变变量 。 ( 3) 几乎在任何地方都可以使用复杂表达式来指定值 。 ( 4) 命名的宏,可以具有位置参数和嵌套内容 。 ( 5) 名字空间有助于建立和维护可重用的宏库,或者将一个大工程分成模块,而不必担心名字冲突 。 ( 6) 输出转换块:在嵌套模板片段生成输出时,转换 HTML 转义、压缩、语法高亮等等;你可以定义自己的转换 。 3、通用数据模