osystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP 技术有点类似 ASP 技术,它是在传统的网页 HTML文件.htm.html中插入 Java 程序段Scriptlet和 JSP 标记tag,从而形成 JSP 文件.jsp。
用 JSP 开发的 Web 应用是跨平台的,既能在 Linux 下运行,也能在其他操作系统上运行。
2.1.1 Jsp 的优势 JSP 是在服务器上运行的编译好的公共语言运行库
代码它可利用早期绑定、实时编译、本机优化和盒外缓存服务。
这相当于在编写
代码行之前便显著提高了性能。
(1)一次编写,到处运行。
除了系统之外,
代码不用做任何更改。
(2)系统的多平台支持。
基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。
相比 ASP/.net 的局限性是显而易见的。
(3)强大的可伸缩性。
从只有一个小的 Jar 文件就可以运行 Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台 Application 进行事务处理,消息处理,一台服务器到无数台服务器,Java 显示了一个巨大的生命力。
(4)多样化和功能强大的开发工具支持。
这一点与 ASP 很像,Java 已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
5支持服务器端组件。
web 应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供 web 页面调用,以增强系统性能。
JSP 可以使用成熟的 JAVA BEANS 组件来实现复杂商务功能。
2.1.2 常用到的 JSP 内置对象 Request 对象:该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息。
它是 HttpServletRequest 的实例。
Response 对象:对客户的请求做出动态的响应,向客户端发送数据。
Session 对象:session 对象是一个 JSP 内置对象,它在第一个 JSP 页面被装载时 4自动创建,完成会话期管理。
Application 对象:服务器启动后就产生了这个 application 对象,当客户在所访问的网站的各个页面之间浏览时,这个 application 对象都是同一个,直到服务器关闭。
但是与 session 不同的是,所有客户的 application 对象都是同一个,即所有客户共享这个内置的 application 对象。
Out 对象:out 对象是一个输出流,用来向客户端输出数据。
out 对象用于各种数据的输出。
Page java.lang.Object:对应 this 关键字。
JSP 网页本身,page 对象是当前页面转换后的 Servlet 类的实例。
从转换后的 Servlet 类的
代码中,可以看到这种关系:Objectpage this在 JSP 页面中,很少使用 page 对象。
Config:javax.servlet. ServletConfig 的实例,该实例代表该 JSP 的配置信息。
常用的方法有 getInitParameterString paramNarne 及 getInitParameternarnes 等方法。
事实上, JSP 页面通常无须配置,也就不存在配置信息。
因此,该对象更多地在 Servlet 中有效。
Exception:java.lang.Throwable 的实例,该实例代表其他页面中的异常和错误。
只有当页面是错误处理页面,即编译指令 page 的 isErrorPage 属性为 true 时,该对象才可以使用。
常用的方法有 getMessage和 printStackTrace等。
PageContext:javax.servlet.jsp.PageContext 的实例,该对象代表该 JSP 页面上下文,使用该对象可以访问页面中的共享数据。
常用的方法有 getServletContext和getServletConfig等。
2.1.3 J2SE 实现网上考试系统 现在已经有了多种实用的考试系统,应用于各种类型的考试,那么为什么要开发本网上考试系统呢,主要出于以下几点考虑: 1.虽然各种类型考试系统研究很多,但是和操作系统无关或者支持多操作系统的考试系统的研究还比较少。
Java 语言和平台无关,可以使用 JBuilder 开发多平台下的 J2SE 程序。
2.商品化软件一般只能获得考试系统的学生端,出于系统保密的原因,有时甚至不能批改试卷,例如省计算机一级考试下发到学校的是考试客户端,考试结束后学生答题数据包统一上交批改。
但是教师希望批改后统计和分析学生成绩,并且以直观的方式显示,从而发现问题改进教学。
5 3.自主控制考试题目,可以用于单元学习后的单元测试。
4.自主扩充修改题库,随时增加修改题目。
现有的考试系统不能完全符合我校定制的需求。
我校的老师对考试系统有特定的要求,例如可以在,多种方式分析成绩等。
结合教学和研究的需要,本人开发了基于 J2SE 的网上考试系统。
本考试系统采用 C/S 模式的软件体系结构,客户端使用 Java 集成开发环境 JBuilder 开发调试生成,数据库使用 Microsoft SQL Server2000 技术,使用 JDBC 技术连接数据库。
本课题中的考试系统是基于 J2SE 的 C/S 模式考试系统,具体使用 Java 的开发平台 JBuilder 实现。
JBuilder 的集成开发环境 IDE 广受业界赞誉,其可视化集成开发环境包括文本编辑器、工程创建工具、对象浏览器和调试器等。
JBuilder 集成了软件开发、调试、部署、管理、版本控制等工具,提高了项目开发速度。
Java 的开发平台称之为 JDK,运行平台称之为 JRE。
为了对 Java 技术的使用方向和范围进行区分,避免开发中关注不必要的技术特性,Sun 公司将 Java 平台划分成3 个版本: 1.J2SE(Java2 Platform Standard Edition):核心用于桌面系统的 Java2 平台标准版,主要用于桌面应用软件的编程。
2.J2EE(Java2 Platform Enterprise Edition):针对企业级软件开发和应用的 Java2平台企业版。
用于创建服务器应用程序和服务,主要用于分布式的网络程序的开发,如电子商务网站和 ERP 系统。
3.J2MEJava2 Platform Micro Edition:适用于嵌入式系统开发的 Java2 平台微型版,如手机和 PDA 的编程。
开发环境主要包括:Java Virtual MachineJVM、核心API、集成 API、用户界面工具、部署技术、部署工具及 API。
J2SE 主要用于实现桌面应用软件开发,其实现的系统有以下特点: 1.支持多平台:Java 是一种与系统平台无关的语言。
在 J2SE 的开发模式下,使用 JBuilder 的 Native Executable Builder 工具可以生成在不同的系统和处理器平台下执行的程序,目前支持的平台有 Dos、Windows、Linux、Solaris 和 Mac OS。
2.分布性:Java 带有强大有关网络协议族的库,使 Java 网络编程高效易用。
3.面向对象:设计重点放在对象及对象的接口上。
4.简单性:Java 的语法比 C简单,只能在一个类中定义公用和静态的变量来实现一个全局变量,不支持 goto 语句,自动管理内存并且进行垃圾收集。
6 5.可靠性和安全性:Java 可以用来构建一定程度防病毒和防攻击的系统。
6.其余特性:多线程、动态性、解释、结构中立性、可移植性、鲁棒性。
2.2 MySql 数据库 MySQL 是一个精巧的 SQL 数据库管理系统,虽然它不是开放源
代码的产品,但在某些情况下你可以自由使用。
由于它的强大功能、灵活性、丰富的应用编程接口(API)以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐,特别是与 Apache 和 PHP/PERL 结合,为建立基于数据库的动态网站提供了强大动力。
MySql 是一种关系型数据库。
此种数据库采用数据分类表格化的架构,将相关的数据组成表格,表格和表格之间可以有关联性,因此称为关系型数据库。
系统管理员可透过应用程序进入服务器,更改数据型态,管理及处理服务器资源。
MySql 也是一种具备延展性的数据库(scalable database),亦即 MySql 可以支持多位使用者同时进入数据库中处理大量的数据。
如图 2-1 所示: 图 2-1 MySql 工作方式2.3 Browser/Server 模式2.3.1 Browser/Server 模式简介 随着网络规模的日益扩大,应用程序的复杂程度不断提高,传统的数据库应用架构已经不能胜任。
为了充分利用网络资源,越来越多的信息需要在 wwwWorld WideWeb 上发布, 实现信息最大程度的共享。
Browser/Server 结构伴随着 Internet 的发展而很快地发展起来。
Browser/Server 体系结构是一种三层结构,其组成如图 2-2所示: 7 图 2-2 B/S 结构示意图 第一层, 浏览器是表示层, 完成用户接口功能。
在客户端向 URLUniformResource Locator指定的 Web 服务器提出服务器请求,Web 服务器用 HTTP 协议把所需文件资料传给用户,客户端接受并显示在 WWW 浏览器上。
第二层,Web 服务器是功能层,完成客户的应用功能。
即 Web 服务器接受客户请求,以 CGI 或 ASP 与数据库连接,进行申请处理,而后数据库结果返回 Web 服务器,再传至客户端。
第三层,数据库服务器是数据层。
数据库服务器应客户请求独立地进行各种处理。
Browser/Server 系统中的 Browser 作为一种通用的浏览器,一般没有任何应用程序; Browser/Server 系统中的中间层是 B/S 结构中相当关键的部分,中间层在Browser/Serve 系统中充当着双重身份:从 Browser 的角度看,它是 Web Server,而从 DB Server 的角度看,它是一个功能丰富的 Client。
2.3.2 Browser/Server 模式的特点 B/S 系统的这种三层体系结构的特点: 友好、统一的图形用户界面 在 Browser/Server 系统中,由于遵循了统一的标准协议,而且使用浏览器作为统一的客户软件,用户无须再花费大量的时间与精力去学习和熟悉不同的系统的使用方法,用户可以把大部分的精力集中在系统的内容上,而不是去记住系统的使用说明书。
减少网络中的数据流量 在 Browser/Server 系统中,由于数据的处理工作是由服务器来执行的,因此在读取数据和保存数据时,这些数据只在几台服务器之间传输,不需要通过浏览器与服 8务器之间的网络。
采用 Browser/Server,可以充分地利用服务器之间的高速连接通路,减少在浏览器与服务器之间的长距离,减少网络中的数据流量。
更好的开放性 开放性是发挥分布式系统优势的基本保障,它为不同厂商生产的产品协同工作创造了条件,但是这些产品还应当遵循统一的标准。
在 Browser/Server 系统中,采用了一致的 HTTP 协议以及其他一些共同的规则,不同系统之间的冲突将会大大减少。
平台无关性 在 Browser/Server 系统中,程序的主体分布在 Mid-Server 上,客户机上只有一个标准的浏览器,它与服务器之间采用标准的 TCP/IP 及 HTTP 等协议进行通信,因此客户端的平台是相对独立的,它不依赖于服务器方所采用的软硬平台。
用户可以自由地选择自己熟悉的平台进行工作。
有效地解决异种数据库联合使用的问题 在 Browser/Server 系统中,由于采用了 Browser/Mid-Server/Server 的三层体系结构,只需在中间层服务器上安装数据库的驱动程序,或者使用专门的服务器用作与数据库连接的桥梁。
因为程序的主体是运行在中间服务器上的,客户端只是一个浏览器,避免了在客户端重复安装数据库驱动程序的问题,可以有效地解决异种数据库联合使用的问题。
客户端的维护工作简单 Brower/Server 系统中,由于采用了通用的客户软件,维护工作主要集中在服务器端,而服务器是由专门的管理人员集中管理的,对系统的维护相对简单得多。
基于 B/S 结构的 Web 应用体系有如此多的优势,因此本网上考试系统的主体就采用这种 B/S 体系结构。
2.4 Spring 技术2.4.1 Spring 简介 Spring 是一个
开源的 Java/Java EE 全功能栈(full-stack)的应用程序框架,以 Apache 许可证形式发布,也有.NET 平台上的移植版本。
该框架基于 ExpertOne-on-One Java EE Design and Development(ISBN 0-7645-4385-7)一书中的
代码,最初由 Rod Johnson 和 Juergen Hoeller 等开发。
Spring Framework 提供了一个简易的开发方式,这种开发方式,将避免那些可能致使底层
代码变得繁杂混乱的 9大量的属性文件和帮助类。
2.4.2 Spring 中包含的关键特性 强大的基于 JavaBeans 的采用控制翻转(Inversion of Control,IoC)原则的配置管理,使得应用程序的组建更加快捷简易。
一个可用于从 applet 到 Java EE 等不同运行环境的核心 Bean 工厂。
数据库事务的一般化抽象层,允许声明式(Declarative)事务管理器,简化事务的划分使之与底层无关。
使 内建的针对 JTA 和 单个 JDBC 数据源的一般化策略, Spring 的事务支持不要求 Java EE 环境,这与一般的 JTA 或者 EJB CMT 相反。
,简 JDBC 抽象层提供了有针对性的异常等级(不再从 SQL 异常中提取原始
代码)化了错误处理,大大减少了程序员的编码量。
再次利用 JDBC 时,你无需再写出另一个 终止 finally 模块。
并且面向 JDBC 的异常与 Spring 通用数据访问对象(Data Access Object)异常等级相一致。
以资源容器,DAO 实现和事务策略等形式与 Hibernate,JDO 和 iBATIS SQL Maps集成。
利用众多的翻转控制方便特性来全面支持,解决了许多典型的 Hibernate 集成问题。
所有这些全部遵从 Spring 通用事务处理和通用数据访问对象.
上一篇:
毕业设计与论文(基于java的标准化考试系统)
下一篇:
数字图像的可逆数字水印研究