JSP学校网上信息管理系统 第12页
第五章 程序设计
在上一章着重讨论了系统功能模块的设计,详细分析了每一个模块的功能,在本章将讨论怎样具体的实现系统中每个模块的功能,也就是系统的详细设计过程。详细设计的根本目标是确定应该怎样具体的实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。
详细设计阶段的任务在于要设计出程序的“蓝图”,因此,详细设计的结果基本上决定了最终的程序代码的质量。详细设计的目标不仅仅是逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程应该尽可能简明易懂。结构程序设计技术是实现上述目标的关键技术,因此是详细设计的逻辑基础。
5.1 程序设计思想
常见的设计思想有两种:结构化和面向对象化,本系统采用的是面向对象的设计思想,下面简单介绍一下两者的不同以及面向对象程序设计的优点。
传统的结构化开发过程包括软件目标的功能分解,以及使用正确的参数和返回值来创建函数。首先分析需求,确定功能,然后以函数的形式进行建模。在一个Web应用中很可能有上千个函数,这些函数能够不受限制的互相调用,因此在访问某个变量时,很难保证它不是正在被其他的函数访问或者修改。用JSP脚本来开发Web应用时就是上面所说的情况。只使用JSP而不使用任何Bean或自定义标记,在Web应用的规模比较小时还不会出现太多的问题,但是在Web应用的规模增大时就肯定会出现问题。这些代码也许能够满足功能上的需要,却不能达到非功能性的要求。
在结构化开发方法面临问题的时候,使用面向对象的方法进行分析、设计和开发就可以解决一部分问题。面向对象的分析和设计方法源于现实生活中的模块化的思想。对象是提供一组相关功能的实体,对象之间互相作用从而完成一定的任务。OO开发方法包括对目标的模块化,以及用类的形式对数据和函数进行封装。面向对象方法主要有以下四个特征:
(1) 抽象性
抽象是对象建模参数的选择,这是进行分析后得到的结果。这意味着是由分析人员来选择一定的参数,以表示对象,这是对象模型化的第一步。
(2) 封装性
由于某些原因,类中的数据和方法不需要对其他的对象公开,我们可以将其隐藏在类的内部,这是对象模块化过程中很重要的一步。这个步骤将确保对象的行为以简单的借口出现,而复杂的执行过程都被隐藏了。比如,JavaBean就可以为Web网页开发人员提供一个简单的接口。
(3) 继承性
在一个现存对象的基础上创建一个新的对象,这个过程称为继承。这样我们可以不必重写所有的代码,只需在新对象中编写需要更新的代码就可以了。比如:Servlet通常是由HTTPServlet派生来的,这意味着Web服务器可以用相同的方法来处理具有从属关系的两个Servlet。
(4) 模块化
为了减少独立工作小组之间的依赖性,软件系统中必须使用模块。比如,我们可以定义一个JavaBean来处理应用程序的状态,这样做的优点是可以独立地对模块进行维护,这样就减少了代码之间的相关性[7]。
5.2 程序设计语言
针对大学信息学院管理信息系统的项目,在综合考虑了此项目的总体特点并对当前流行软件的实用性进行比较之后,我们主要采用JSP作为程序设计代码的开发工具。使用JSP作为开发工具的主要原因在于利用JSP技术可以建立动态的、高性能的、安全的、跨平台的先进动态网站。JSP技术在加速动态Web 网页开发时的突出特点有以下几个[10]:
(1) JSP可以将内容的生成和显示进行分离:Web页面开发者可以用HTML或XML 标识进行对最终页面的设计,同时使用JSP Tag 或Java Script 来生成页面上的动态内容,其内容在逻辑上是被封装在JSP Tag 和Java Bean 中的, 并被捆绑在Java Script 中. 因为所有的脚本都在服务器端运行, 所以, 如果核心逻辑部分被封装在标识或Beans中, 那么Web管理人员或页面设计者将只能编辑JSP页面的显示方式, 而不会影响其内容的实质。
(2) 对不同浏览器的兼容: 由于JSP技术采用了将JSP Tag 和Java Script 在服务器端解释并执行而只将结果以HTML或XML的形式送回到客户端的方法, 从而保证了对其它基于HTML的Web浏览器的完全兼容。
(3) 强调可重用的组件: JSP页面在绝大多数情况下都利用了可重用的、可跨平台的组件来完成程序所需要的更为复杂的处理工作, JSP技术封装了许多功能, 开发人员和使用者可以共享、使用这些组件,采用JSP Tag访问或实例化Java Beans组件、设置或检索这些组件的属性,从而实现“一次编写,各处运行”的功能,加快了动态页面的开发过程。
基于这些优点,从实际考虑,决定用JSP作为开发语言来开发整个系统。
5.3 数据库连接的建立
本系统在数据库连接方面,使用了数据库连接池(connection pool)技术。首先,在WebSphere服务器里配置好数据库连接池,命名为JNDI_NAME,其值为java:comp/env/jdbc/test;然后,在系统中建一个ConnectionPool类,然后利用initCtx.lookup(JNDI_NAME)函数,取得WebSphere里配置好的数据源(data source);这样,就可以从这个数据源里面取出预先设定好的数据库连接了。具体在程序中引用需要以下代码:
Context initCtx = new InitialContext();
DataSource ds = (DataSource)initCtx.lookup(
"java:comp/env/jdbc/sqlServer/test");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery();
这样,在数据库连接的方面,运用数据库连接池技术与在程序运行时,每次直接从数据库取得连接相比,效率上有个比较大的提升。
5.4 各子系统程序设计
5.4.1 学院文化建设
(1) 管理员登录模块
为了维护整个系统的安全性,使信息不可以随意的更改,非本子系统的管理员不得进入本系统对信息进行操作,管理员有各自的访问权限,只有具有本系统权限的管理员可以对其进行操作。这样我们利用了JSP程序设计对本校管理员的用户名和密码进行绑定的办法,对每个进入本系统的管理员进行验证,验证成功后进入文化建设后台管理界面。该页面使用一个Bean负责查询administrator表来验证登录管理员的身份,这个Bean对所有的登录都适用。Bean中主要是设置属性值、获取属性值的方法和查询数据库中表操作后返回的信息。具体Bean中的代码见附录。具体流程图如图5-1所示。
<< 上一页 [11] [12] [13] [14] [15] [16] [17] 下一页