本公交信息系统的开发,选择的开发平台是:jdk
JDK 是Java开发工具包 (Java Development Kit ) 的缩写。它是一种用于构建在 Java 平台上发布的应用程序、applet 和组件的开发环境。JDK是一切java应用程序的基础,所有的java应用程序是构建在这个之上的。它是一组API,也可以说是一些java Class。要成为一个Java程序员,JDK是必不可少的最基本的工具。
SQL Server 2000关系数据库引擎是一个流行的,具有高度可伸缩性和高度可靠性的数据存储引擎。应用程序可以将结构化查询语言(SQL)的语句提交给数据库引擎,或者将表格格式的结果返回给应用程序。
关系数据库引擎的特点如下:
关系数据库引擎具有高度的可伸缩性。SQL Server 2000 企业版可以支持多组数据库服务器相互协作,构成可供上千用户同时访问的TB大小的数据库。
关系数据库引擎具有高可靠性,能够运行很长时间而不发生故障,在数据库引擎的早期版本中要求停止和启动的管理操作现在可以在引擎运行当中执行,从而增加了可用性。
关系数据库引擎还具有高度的安全性。登录身份验证可以与Windows身份验证集成在一起,这样,密码不回存储在SQL Server中,也不会通过网络发送而被网络嗅探器读取。
Tomcat是Sun的JSWDK(JavaServer Web Development Kit)中Servlet的运行环境(servlet容器)。Tomcat的源代码被提供给Jakarta项目,在Open Source的模型下进行进一步的开发。Tomcat是一个Server容器,同样的,EJB运行在EJB的容器中。
Tomcat是Apache-Jarkarta的一个子项目,是一个开放式原码,免费支持JSP和Servlet技术的容器,它同时又是一个Web服务器软件。
Tomcat很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能,而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。
Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
下面是我环境变量的配置:
右键我的电脑——>属性——>高级——>环境变量
变量名:CATALINA_BASE
变量值:C:\Program Files\Apache Software Foundation\Tomcat 5.5
变量名:CATALINA_HOME
变量值:C:\Program Files\Apache Software Foundation\Tomcat 5.5
变量名:CLASSPATH
变量值:
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\libmsbase.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\libmssqlserver.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\libmsutil.jar;C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\servlet-api.jar;D:\Java\jdk
变量名:JAVA_HOME
变量值:D:\Java\jdk
变量名:Path
变量值:c:\windows\system32;c:\windows;c:\windows\system32\wbem;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%CATALINA_HOME%\lib
另外,还要给SQL Server 2000打上SP3以上的补丁,我打的是SP4补丁。另外复制servlet-api.jar文件到D:\Java\jdk
在SQL Server 2000 中新建数据库,命名为“cangku”,步骤如下:
“开始”->“所有程序”->“Microsoft SQL Server”->“企业管理器”->“LOCAL”->“数据库”,单击右键,选择“新建数据库”,出现下面的窗口,将数据库的名称命名为“cangku”。这样,数据库就成功建立了。建表界面如图3-1所示。
图3-1 数据库属性界面
将数据库“cangku”伸展开,如下图所示,选择“表”,单击右键,选择“新建表”,输入所要建立的表的相关信息,即成功新建了一张表。如图3-2所示。
图3-2
这时的表是张空表,想要表里有内容显示,可以点在刚刚新建的那张表的名字上,单击右键,选择“打开表”->“返回所有行”,即可向表里插入内容。
1. 登录信息表:
登录信息表中各字段的属性如图3-3所示
图3-3
登录信息表中的内容如图3-4所示
图3-4
2.仓库信息表
仓库信息表中各字段的属性如图3-5所示
图3-5
仓库信息表中的内容如图3-6所示
图3-6
1. 入库信息表
入库信息表中各字段的属性如图3-7所示
图3-7
入库信息表中的内容如图3-8所示
图3-8
2. 出库信息表
出库信息表中各字段的属性如图3-9所示
图3-9
出库信息表中的内容如图3-10所示
图3-10
5. 产品类信息表
产品类信息表中各字段的属性如图3-11所示
图3-11
产品类信息表中的内容如图3-12所示
图3-12
登录界面,我是用Dreamweaver做的,比较简单的一个登录界面。
打开Dreamweaver,点击文件——>新建——>基本页HTML——>创建,就可以得到一个未命名的HTML文件。如图3-13所示。
写出来的login.htm,title为系统登录。另存为C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\ROOT\myjsp文件中。打开傲游浏览器,在地址栏里面输入http://localhost:8080/myjsp/login.htm,运行如图3-14所示。
图3-13
图3-14
Y 连接数据库 输入用户名和密码 开 始
对不起,您登录失败,用户名或密码错误 转入index1.jsp 结束 N 用户名密码是否正确? N 图3-15
在myjsp这个文件夹下面,新建一个文件夹,命名为cangku,然后在这个文件夹下面新建三个文件夹,分别命名为cangku,util和run。系统包图如图3-16所示。
cangku | ||
cangku.cangku |
cangku.run |
cangku.util |
cangku |
op_cangku |
DataBase |
chanpinglei |
op_chanpinglei |
dataFormat |
ruku |
op_ruku |
|
chuku |
op_chuuku |
|
图3-16
从图3-16中可以看到,在cangku包下有四个类,其中各个类的作用如下:
cangku类:仓库类。包括仓库类各产品的各种属性。
chanpinglei类:产品分类类。
ruku类:入库类。包括入库产品的各种属性。
chuku类:出库类。包括出库产品的各种属性。
在run包下面有四个类, 其中各个类的作用如下:
op_cangku类:管理库存产品,包括仓库内产品的查询,修改,添加,删除等。
op_chanpinglei类:管理产品分类,包括产品分类的的查询,修改,添加,删除等。
op_ruku类:管理入库产品,包括入库产品的查询,修改,添加,删除等。
op_chuuku类:管理出库产品,包括入库产品的查询,修改,添加,删除等。
在util包下面有两个类, 其中各个类的作用如下:
DataBase类:该类主要负责数据库的连接。
dataFormat类:该类负责数据的格式转换,例如将字符串木工化成HTML代码输出等。
下面分别介绍各个类的实现方法。
数据连接Bean的编写:
这是个公共类,其他类如果要连接数据库,只需要构造这个类的对象就可以了。新建一个java文件,命名为DataBase.java。
字符处理Bean的编写:
在程序设计中经常会涉及有关字符串的处理,例如:把字符串转换成适合于网页显示的文本,把字符串转换成适合SQL语句的字符串,字符串里的字符替换等,所以有必要把这些字符串处理的方法集合到一个类中。此文件名为dataFormat.java。
库存产品Bean的编写:
应用面向对象的思想把具有共性的实体抽象成一个类。这个库存产品Bean就是对库存产品实体的抽象,它包括了库存产品实体的所有属性及库存产品的初始化构造的方法。对于实体的私有属性一般常用set方法设置属性值,例如代码中,public void setID(long newID)方法;而对于私有属性值的获得常用get方法,例如代码中, public long getID()方法。此文件名为cangku.java。
产品分类Bean的编写:
这个类是对产品分类实体的抽象,它包括了产品的所有属性及产品分类对象的初始化构造的方法。产品分类Bean的编写与库存产品Bean的编写相似。此文件名为chanpinglei.java。
入库产品,出库产品Bean的编写与库存产品Bean的编写类似,分别命名为ruku.java和chuku.java。
管理库存产品的Bean的编写
该类主要负责库存产品的管理,包括库存产品的修改,查询,删除和添加等,如图3-17所示为其类图。此文件名为op_cangku.java.
图3-17
从图3-17中可以看出该类具有以下属性。
private javax.servlet.http.HttpServletRequest request:建立页面请求
private boolean sqlflag = true ; //对接收到的数据是否正确
private Vector chanpinglist; //显示产品列表向量数组
private int page = 1; //显示的页码
private int pageSize=10; //每页显示的产品数
private int pageCount =0; //页面总数
private long recordCount =0; //查询的记录总数
public String sqlStr=""; //记录SQL语句
从图2-17可以看出该类具有以下主要方法。
Chanping_search(): 完成库存产品的查询,包括分类,分页查询。
Delete(): 负责库存产品的删除。
Getonechanping(): 主要完成库存产品的单个查询,用于支持页面的“查看详细资料”需求。
getSql(): 获得查询产品分类的SQL语句。
getSqlflag(): 获得标记Sqlflag的值。如果从页面接受到的数据正确,则此值为true。
Insert(): 负责库存产品的添加。
To_String(): 把字符串以“ISO 8859
Update(): 负责库存产品的修改。
getRequest(): 负责把从页面接受到的表单资料分解,并设置库存产品实体的相应属性。
当然,由于该类具有属性,方法中还具有对它的属性进行赋值和取值的方法,
不再一一列举了。以下着重介绍getRequest(),chanping_search(),insert(),update()
和delete()五个方法。
getRequest()方法:
功能: 负责把从页面接收到的表单资料分解,并设置库存产品的相应属性。
参数设计: 现面传递的Request对象,其中包括页面传递的表单数据。
返回值: Boolean类型, true 表示成功,反之表示失败。
设计思路: 获得页面传递的Request对象,分解Request对象,获得表单参数值,把参数值设置对库存产品对象的相应属性的值。
chanping_search()方法:
功能: 负责库存产品的查询,包括库存产品的分类,分页,关键字查询.
参数设计: 面面传递的Request对象,其中包括页面传递的表单数据.
返回值: Boolean类型, true 表示成功,反之表示失败。
设计思路: 获得页面传递的Request对象,分解Request对象,获得表单参数值,根据参数值判断是何种查询,组织SQL语句,从数据库中查询数据,构造库存产品对象,设置对象属性值。
insert() 方法:
功能: 负责库存产品的添加。
参数设计: 无。
返回值: Boolean类型, true 表示成功,反之表示失败。
设计思路: 从库存产品对象中分别获得库存产吕的属性,组装SQL语句,执行SQL语句,返回执行结果。
Update() 方法:
功能: 负责库存产品的修改。
参数设计: 无。
返回值: Boolean类型, true 表示成功,反之表示失败。
设计思路: 从库存产品对象中分别获得库存产吕的属性,组装SQL语句,执行SQL语句,返回执行结果。
delete() 方法:
功能: 负责库存产品的删除.
参数设计: 传递库存产品的ID号,该ID号对应cangku表的主键ID。
返回值: Boolean类型, true 表示成功,反之表示失败。
设计思路: 从库存产品对象中分别获得库存产吕的属性,组装SQL语句,执行SQL语句,返回执行结果。
管理产品分类Bean的编写:
由于产品分类实体的存在,需要有对产品分类进行查询,添加,修改,删除等操作的方法,为了使用上的方便,所以就把这些方法集合到一个类中,这个类就是产品分类的op_chanpinglei类,如图3-18所示为该类的类图。
图3-18
从图3-18中可以看出该类具有的属性如下:
private chanpinglei chanpinglei = new chanpinglei(); //标记新的产品分类
private javax.servlet.http.HttpServletRequest request;//记录页面请求对象
private Vector classlist; //类别向量数组,保存产品分类对象。
从图3-18中还可以看出该类具有以下方法:
Delete(); 负责指定ID的产品分类的删除。
getchanpingSQL(): 获得查询产品分类的SQL语句。
Insert(): 负责添加新的产品分类。
Op_chanpinglei(): 该类的构造函数,负责产品分类对象的初始化构造。
Searchchanpinglei(): 负责产品分类的查询。
另外还有一些对该类属性值进行设置和取得的方法,就不一一列举了。
管理入库产品和管理出库产品的Bean与管理库存产品的Bean类似.不再详细描述. 分别命名为op_ruku.java和op_chuku.java。
界面头尾的设计
为了提高代码的重用性,我把界面部分相同的头和尾做成两个模块,分别命名为head.inc和tail.inc.保存在myjsp文件夹下的inc文件夹里面.两个文件都是纯HTML代码,比较简单,不详细介绍了.head.inc的主要内容是系统主要功能的连接,tail.inc的主要内容是版权,及我的联系方式。我写了index1.jsp作为此系统的主页,里面就写了两行代码,就可以看到页面的头尾效果。代码如下,效果如图3-19:
<%@include file="inc/head.inc"%>
<%@include file="inc/tail.inc"%>
上一页 [1] [2] [3] [4] [5] [6] 下一页