中采用了Servlet容器:Catalina,完整的实现了Servlet2.3和Jsp1.2规范。Tomcat提供了各种平台的版本供下载,可以从其官方网站上下载其源代码版或者二进制版。由于Java的跨平台特性,基于Java的Tomcat也具有跨平台性[13]。
2.8.2 Tomcat的特点
在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于Ftp,你可以在远程通过Web部署和撤销应用。当然本地也可以。
2.8.3 Tomcat的优势
Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache.我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet.这种集成只需要修改一下Apache和Tomcat的配置文件即可。
2.8.4 Tomcat服务器的安装和配置
在开始安装之前,先准备J2SDK和TOMCAT两个软件,如果已经安装了J2SDK,就只需TOMCAT即可。
(1)需设置的环境变量
变量名:CATALINA_HOME
变量值:D:\Program Files\tomcat6.0
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib;%CATALINA_HOME%\common\lib
(2)安装完成后,打开tomcat服务器,启动浏览器,在地址栏上输入:localhost:8080/ 若出现以下界面说明安装成功[14]。
图2-9 tomcat启动页面
小结
本章全面介绍本系统所用到的关键技术和工具,其中jsp作为javaweb开发的基础,对它的运行机制要理解,同时还要明白它的优劣势;
j2ee作为开发的标准也作了简单介绍。而SSH(struts+spring+hibernate)作为本系统的核心与亮点技术,更是作了详细介绍,要掌握他们的工作原理,主要功能。最后介绍了本系统使用的数据库mysql以及tomcat服务器的安装与配置。只有掌握了这些技术基础,才能使本系统的开发正常进行。
第三章 系统需求分析和总体设计
3.1 系统功能需求
图3-1 系统功能模块
如图3-1所示,在本系统中主要阐述用户管理、考试管理、成绩管理、题目管理四个模块。
(1)考试管理:实现选择
课程,准备考试,开始考试,自动阅卷,显示考试成绩等。
(2)题目管理:实现试题库中试题的分类和增加,删除,以及答案的设置等。
(3)成绩管理:实现前台用户的成绩查询,后台管理员对成绩的
查询。
(4)用户管理:实现用户注册、用户信息修改、用户查询功能。
3.2 系统角色及其功能分析
3.2.1 系统的2个角色:
(1)注册用户
(2)管理员
3.2.2 系统角色的功能
(1)
注册用户
使用系统的功能,用户必须先注册,只要注册为网站用户后,获得自己的帐号,设置自己的密码就具有以下功能:登录,登出,参加考试,提交试卷,查询成绩,添加或修改个人资料。
(2)管理员
管理员可以对试题属性进行设置、对用户资料的查看,删除等,以及对成绩的查询等
3.3 总体设计思想概述
本系统是基于B/S架构下的多层结构应用系统。B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了用户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)[15]。
在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。推荐的分层式结构一般分为三层,从下至上分别为:数据访问(持久)层、业务逻辑层(或称为领域层)、表示层[16],如图3-2:
图3-2 系统架构
总的来说,采用分层结构的设计思想,可以让每个层由一组相关的类或组件构成,共同完成特定的功能。层与层之间存在自上而下的依赖关系,上层组件会依赖下层组件的API,而下层组件则不依赖于上层组件。例如:表述层依赖于业务逻辑层,而业务逻辑层依赖于数据库层。并且每个层对对上层公开API,但具体的实现细节对外透明。当某一层发生变化,只要API不变,不会影响其他层的实现。
在本系统中,使用开源的mysql数据库,持久层用到spring所集成的Hibernate技术,业务逻辑层用普通javabean实现,表述层运用基于struts的MVC设计模式(struts用来做