1、论文格式化系统前台的设计与实现摘 要该系统是一个基于 web 的软件。该系统的客户端采用 javascript 和 php 作为平台的开发语言,Mysql 作为后台数据库,Apache2.0 作为 web 服务器。该系统用 javascrit 脚本在客户端封装表单里面的数据并将这些数据封装成 xml 字符串,然后发送这个字符串给服务器。在接收到送服务器端发送来的 xml 之后,系统用 javascript 脚本解析 xml 然后填写到表单中去。他们可以按时的发表自己的论文。系统也提供学生和导师的论文交互平台,论文交互平台采用了 php脚本编写了数据库操作类和常用函数类,然后用这些类创建新的对象
2、来使用对象中的方法,比如数据库连接的方法,数据库查询方法,上传论文的方法等。并用了 Apache 的 rewrite 模块来重定向请求的 url。这篇论文还介绍了 Smart template 系统和它扮演的角色,还用一个例子来描述了怎么使用它来将 php 脚本和 html 代码分离。论文中还解释了在系统开发期间遇到的一些问题,比如修改 mysql 数据库密码的问题和其他的问题。关键词:javascript;xml;php;mysql;Apache;论文The Essay Formatting SystemFront-side Design and ImplementationAbstract
3、This system is a software which is based on web. The front-side of this system uses javascript and php to take the onstage development language. Mysql makes the backstage database.Apache2.0 makes the web server. This system uses javascript script on fornt-side to get the froms datas and encapsulate
4、these datas to a xml string, then send the string to server. After received the xml data from server, system uses javascript script to parse the data then fill it into the form. This system also provides a essay exchange stage. The essay exchange stage uses php script to write database operation cla
5、ss and common functions class then uses these classes to create new objects to execute the functions of the object, such as database connect function, database query function, upload essay function and so on. And uses the rewrite module of Apache to redirect the request url. This essay also introduc
6、es the Smart template system, the role played by it and give an example to describe how to use it to separate php script from html code. In this essay also explain some problems during development system such as modify the password of mysql database and other problems. Key words: javascript; xml; ph
7、p; mysql; Apache; essay目 录论文总页数:27 页1 引言 .12 系统需求 .12.1 系统需求概述 .12.2 系统详细需求分析 .12.2.1基于 web 开发 .12.2.2格式化文档 .22.2.3前台需求 .22.2.4性能需求 .23 方案选择 .23.1 方案比较 .23.1.1系统模式比较 .23.1.2程序语言选择与比较 .33.1.3数据库的选择 .43.1.4开发工具的选择 .53.2 环境搭建 .53.2.1安装 Apache web server.53.2.2安装 PHP.53.2.3安装 Mysql.54 总体设计 .64.1 系统架构设计
8、.64.1.1网络架构 .64.1.2系统逻辑服务器 .64.2 总体结构 .74.3 系统工作流程图 .75 实现和编码 .85.1 数据库设计 .85.2 数据库表结构设计 .95.3 系统程序实现 .125.3.1前台 javascript 程序工作流程 .125.3.2首页的设计与 javascript 封装 XML.135.3.3通过 XMLHttpRequest 对象发送 XML.145.3.4Smart template 简介 .155.3.5Smart template 在本系统中的运用 .155.3.6系统数据库封装与操作 .155.3.7系统常用函数封装设计 .175.3.
9、8Apache Rewrite 功能在系统中的运用 .176 特殊问题解决办法 .196.1 mysql 数据库密码修改问题 .196.2 php 自动转义问题 .197 测试与结果分析 .197.1 运行模块举例 .197.1.1前台上传记录模块举例 .197.1.2系统管理员模块举例 .207.1.3学生功能模块举例 .217.1.4导师功能模块举例 .227.2 测试结果与分析 .23结 论 .24参考文献 .25致 谢 .26声 明 .27第 1 页 共 27 页1 引言在人们繁忙的工作环境中,很多资料文件都要形成规范化的文档便于分类和存放,信息化的社会已经将以前手工抄写文档全部用电脑
10、办公平台提供的统一的文档编辑软件所取代,当然所编写的文档的格式也是统一化的,包括文档中内容的字体,字号,标记,页码等等都是统一的。比如美国微软公司的 Word文档格式,这种格式已经成为了世界的一种标准,全世界通用,再比如 Adobe公司的 PDF 文档格式,也是一种世界标准,是人们常用的一种文档格式。然而在日常的办公中,人们需要在文档编辑软件中编辑文档,需要花费大量的时间和精力来编辑文档的格式,比如字体,字号等等,对于同一类的文档来说,格式都是规范化好了的,但是文档编辑器不可能提供每一个规范好了的模板,因为各个地区或者企业他都有自己的规范,人们需要自己去编辑,这样话就降低了办公的效率,对于个人
11、和企业来说都是在浪费时间,提高了成本。于是聪明的人开始想办法解决这个问题,新的软件由此产生了,涌现出了很多的PDF,Word 文档的转换软件,他们很强大,不仅可以将 PDF 转换为 Word,也可以将 Word 转换成 PDF 格式,有的也可以转换其他格式的文档,比如将 Html 文档转化成 PDF 文档。考虑到高等学府中教师,学生也要写论文,而且所写的论文要保存为特定格式的文档,保证论文的规范化,为此,我们设计了一套系统专门提供给毕业生将论文转化为规范的格式,省去大量的论文编辑时间,提高论文发表的效率,降低论文修改的频率,给同学们带来巨大的方便。我们将系统定位于 B/S 模式,主要考虑到系统
12、易用性,客户机只需要安装了 IE 浏览器就可以通过访问网站的形式使用论文格式化系统,只是本系统一大优势。本系统后台采用 JSP 开发,前台采用 php 和 javascript 开发,服务器环境采用 windowsNT+Apache Tomcat+Mysql。后台开发工具使用 Eclipse,前台开发工具使用 EditPlus 和DreamwearMX。2 系统需求2.1 系统需求概述系统用于辅助大学毕业生毕业论文写作,给学生提供统一的文档规范格式化平台,并且需要一个方便学生和老师沟通的信息化平台。系统运行在网络环境,需要具有实用性,易用性和高效性。2.2 系统详细需求分析2.2.1 基于 w
13、eb 开发系统在网络环境下工作,采用 B/S 模式进行开发,需支持至少一种主流浏览器,系统字符集采用 UTF8。第 2 页 共 27 页2.2.2 格式化文档用户提交表单后,后台需要能生成 RTF 和 PDF 文档,并自动提示用户下载存。2.2.3 前台需求1前台用户操作简易且人性化,支持用户填写信息的格式验证,不正确将给出提示;2支持学生、导师注册,填写信息验证,不正确将给出提示,填写信息完整才可进行提交;3支持学生、导师登录,填写信息验证,不正确将给出提示;4支持学生取回记录,自动还原到用户论文填写表单;5支持学生上传记录,自动风装成 xml 文件格式发送给服务器;6支持学生上传论文,只有
14、学生有上传权限操作,上传选择文件,支持文件后缀名有 pdf、rtf、doc、docx、rar、zip,并且有上传文件描述;7支持导师下载查看学生上传论文,只有导师有权限操作,导师只能查看到自己的所带学生上传的论文;8支持导师提出修改意见和评定分数,只有导师有权限操作,意见和分数与学生上传记录一一对应;9支持后台管理,包括后台管理用户的管理,学生管理,导师管理,院系管理,上传论文的管理,资源发布的管理,用户留言的管理,只有后台管理员有操作权限,并且后台管理员可以拥有不同的操作权限,例如可以只能有资源发布权限,具有后台管理用户管理权限的管理员可以给不同的管理员分配操作权限。2.2.4 性能需求1安
15、全性,后台管理设置管理者权限,学生、导师各有各的操作权限;2系统需要易用性和实用性,必定实现关键的功能;3能承受大的负荷,选用合适的开发环境,包括 web 服务器,数据库和开发语言。3 方案选择3.1 方案比较3.1.1 系统模式比较目前开发模式主要有 C/S 结构和 B/S 结构:第 3 页 共 27 页C/S 结构,即 Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到 Client 端和 Server 端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。 B/S 结构,即 Browser/Server(浏览器/服务器)结构,是随着
16、Internet 技术的兴起,对 C/S 结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过 WWW 浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。B/S 结构利用不断成熟和普及的浏览器技术实现原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。3.1.2 程序语言选择与比较1、PHP 语言概述PHP(Hypertext Preprocessor),它是一个递归的缩写名称,是一种 HTML 内嵌式的语言 (类似 IIS 上的 ASP)。而 PHP 独特的语法混合了 C、Java、Perl 以及 PHP 式的新语法。它可以比
17、CGI 或者 Perl 更快速的执行动态网页。PHP 最初是在公元 1994 年 Rasmus Lerdorf 开始计划发展。在 1995 年以 Personal Home Page Tools (PHP Tools) 开始对外发表第一个版本PHP 的第三代 与 Apache 服务器紧密的结合,并且它几乎支持所有主流与非主流数据库,执行效率也提高了很多。PHP 的第四代增加了关 Zend 核心引擎技术,整个脚本程序的核心大幅改动,让程序的执行速度,满足更快的要求。PHP 的第五代,也就是 PHP5,它比 PHP4 更具有了面向对象的特征,目前php 第五代也稳定了。2、PHP 与 JSP 的比
18、较PHP 与 JSP 技术非常相似,两者都提供在 HTML 代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。并且双方都能够为程序员提供组件设计的功能, (PHP 使用 COM 组件、JSP 使用 Java Bean 组件) 。两者都是面向 Web 服务器端的脚本语言,客户端浏览器不需要任何附加的软件支持。两者之间主要的区别:平台和服务器的选择PHP 本是一个开源项目,它支持的主要操作系统是 Unix 和 Linux,当然随着 PHP 的成熟,windows 平台下也可以使用 PHP,而且 PHP 的移植性很好。它所支持的数据库含盖了世界几乎所有流行的数据库,比如:mysql,oric
19、le 等,甚第 4 页 共 27 页至包括 Access。 JSP 技术主要运行在操作系统上的一个 Java Virtual Machine 虚拟机器上,因此,它能够跨越所有的平台,而且 jsp 比 php 跟适合企业级的开发,它的安全行更好,但 jsp 并不是一个开源的项目, 随着 php 的成熟 jsp 将面临着 php的挑战。语法结构Jsp 是一种完全面向对象的语言,而 php 混合了 C、Java、Perl 以及 PHP 式的新语法,所以 jsp 相对 php 更为严紧,而 php 则更为自由和灵活。当然两者都是一种可嵌入 HTML 的语言。语法的延展性PHP 和 JSP 都是使用标签
20、和 Scripting Language 来制作动态 WEB 网页,PHP 的版本不同具有不同特性,比如 PHP5 比 PHP4 更好的支持了面向对象的特征,但不能支持多重继承,而 JSP 是一个完全面向对象的语言,它的延展性相对 PHP 更为优秀。执行性能自从 PHP4 采用了 Zend 引擎以来,PHP 的执行速度是原来 10 倍之多,大大提高网页执行的效率,很多商务网站采用 PHP 制作来提高赢利能力。而 JSP 除了在一开始加载的时间会比较久之外,之后的表现就远远比 ASP 的表现来得好。原因在于:JSP 在一开始接受到请求时,会产生一份 Servlet 实体(instance) ,它
21、会先被暂存在内存中,一般称之为持续(Persistence), 当再有相同的请求时,这实体会产生一个线程来服务它,如果过了一段时间都不再用到此实体时,Container 会自动将其释放,至于时间的长短,通常都可以在 Container 上自行设定。所以两者各有所长。PHP 的执行过程如图 3-1 所示:Apache2.0 web serverIE 浏览器(其他 Browser)Php 解释器图 3-1 php 的执行过程从以上的比较中可以看出,php 比 jsp 更适小中级别的 web 程序开发,由于我们的系统的需求并不是很复杂和庞大,而且 php 完全满足系统的要求,综合考虑下选择了的 ph
22、p 作为开发语言。第 5 页 共 27 页3.1.3 数据库的选择本系统的数据库选用的是 mysql。首先,它提供了以 Web 标准为基础的扩展数据库编程功能,可支持 Web 的分析,对数据的 Web 访问。其次,它具有良好的移植性,可以移植到几乎所有平台。最后,它是免费的,极大的节约了成本。3.1.4 开发工具的选择EditPlus 是 phper 的经常用到的工具,它很小巧,速度很快,可以高效率进行程序的编写,由于其他的更强大的编辑器提供了很多方便的功能不便于对PHP 语言的学习,一旦脱离了强大的编辑器就不能编写 PHP 程序,所以我选用了 EditPlus2.0。前台页面设计,使用了 D
23、reamweaver MX 2004。3.2 环境搭建3.2.1 安装 Apache web server选择 Apache2.0.55 版本,安装路径为:E: Apache GroupApache2,安装完成后进行以下的配置:先打开 E: Apache GroupApache2conf httpd.conf 文件,找到DocumentRoot,在这里设置 web 程序所放的地方,我把它设置为 E:www,以后我的所有 web 文件都放在这个目录下面;然后找到 DirectoryIndex 项,在后面添加 index.php,这是将 index,php 设置为默认的首页;添加 AddType
24、application/x-httpd-php .php 这一项,这是将 php 与 apache 进行整合,apache 得到请求会通知 PHP 执行程序;添加 PHPIniDir C:/php4/php.ini,这里我用的是 php4,php.ini 是 php 的配置文件,等会谈 php 的安装的时候说明;添加 LoadModule php4_module C:/php4/php4apache2.dll,这也是整合 php 和apache 重要的一项配置;找到 LoadModule rewrite_module modules/mod_rewrite.so,去掉前面的”#”号,找到 Al
25、lowOverride None,把 None 改成 All 开启 rewrite 模块。3.2.2 安装 PHP将下载的 PHP4 包解压到 C:php4 下面,重命名 php.ini_dist 为php.ini,打开 php.ini 进行配置:找到 extension_dir,将之改为 c:/php4/extensions,这个目录下是 php 要使用的 dll,找到 extension=php_mbstring.dll 等,去掉前面的”;”号加载需要的动态链接库。找到 shorttarg,设置为 ON,防止 php 中“”这种写法被阻止。第 6 页 共 27 页3.2.3 安装 Mysq
26、l去 下载 windows 下的二进制安装包,下载完成后默认安装,但需要注意的是在细节配置中将 mysql 的默认字符集设置为 utf8。4 总体设计4.1 系统架构设计4.1.1 网络架构整个网络架构体系如下图:图 4-1 论文格式化系统(前台)网络构架图由图 4-1 可以看到,一台 web 服务器,一台 mysql 数据库服务器,局域网客户机和远程客户机组成了系统的 B/S 结构,他们必须在网络的基础上进行通信。客户机通过浏览器访问 web 服务器,web 服务器安装配置了两个 web 服务器,一是个 tomcat apache,一个是 apache 服务器,前者端口为 80,后者端口为 8080。web 服务器端执行浏览器发来的请求,然后返回给浏览器信息,数据库的存储服务器端的脚本会通过请求的不同存如 mysql 和写到服务器端的 xml文件中。