资源描述
本科生毕业论文
题 目: 基于JSP固定资产管理系统
系 别:
专 业:
学 号:
姓 名:
指引教师:
完毕时间:
摘要
已经进入信息时代今天,用纸张记录简易信息管理方式,已不能用来迅速、精确地分析、解决复杂信息。因此,人们试图运用计算机来控制整个信息解决和信息管理过程。本文针对固定资产管理进行研究,先后进行了可行性分析、需求分析、总体设计、详细设计及代码实现、测试等。
本文探究了WEB应用系统开发过程及有关技术,为实现基于JSP与MySQL数据库技术固定资产管理系统,结合实际资产管理方式设计其功能需求和业务解决流程,重要实现前台业务解决和对数据库中信息访问、读取、解决对的过程。
系统将分为顾客登录、固定资产增添/作废,固定资产调配等功能模块,一方面着手于实现顾客登录控制,从访问安全性考虑,设计了三种不同权限顾客。另一方面,定位不同权限顾客完毕何种功能,采用JSP网络编程和MySQL数据库技术控制数据解决过程。使用基本HTML语言进行前台设计,JSP、SQL语句及MySQL数据库实现后台数据解决过程。最后完毕后进行系统测试。
核心字:信息;固定资产管理;JSP;SQL语句;MySQL数据库
ABSTRACT
Nowadays,we have entered the information age,using the simple information management way which is paper records can not rapid and accurate to analysis and process the complex information. So,people tried to use the computer to control the whole process of information processing and information management .Based on the fixed assets management research has carried on the feasibility analysis,needs analysis,general design,detailed design and code implementation,testing.
This paper discusses the application of WEB system development process and related technology. To realized the fixed assets management system which based on JSP and MySQL database technology,combined with the actual asset management to design its functional requirements and business processes. The system mainly realizes the foreground business processing and the correct procedure and processing to access and read the information from the data base.
The function module of the system is divided into the user login,add or scrap the fixed assets,handle fixed asset and so on. Firstly,realization of control the user’s login,from the access security considerations,design of three kinds of different users. Secondly,different users complete different functions,using JSP network programming and MySQL database technology to control data processing. The front design of the system uses the basic HTML language. And,the background data processing process uses the technology which is the JSP,the SQL statement and the MySQL database. Eventually,testing the system after completing.
Keywords:information;fixed assets management;JSP;the SQL statement;MySQL database
目录
1引言 1
1.1系统设计背景 1
1.2系统开发意义 1
1.3系统开发工具选用及简介 1
1.3.1 JSP优势及特点 1
1.3.2 服务器优势及特点 2
1.3.3 数据库优势及特点 2
2 需求分析 3
2.1 可行性分析 3
2.2 功能性需求分析 3
2.2.1 辨认系统业务 3
2.2.2 系统数据流图 4
2.3 非功能性需求分析 6
2.3.1 可靠性需求 6
2.3.2 安全性需求 6
2.3.3 可扩展性需求 6
3 详细设计 7
3.1数据库设计 7
3.1.1 数据库表创立 7
3.1.2 实体-关系模型(E-R图) 7
3.2 系统构造图 10
3.3功能需求 11
3.3.1顾客登录模块 11
3.3.2访问权限不同顾客管理模块 12
4 前台设计 15
4.1 固定资产管理系统登录窗口 15
4.2 超级管理员使用窗口 17
4.3 管理者使用窗口 20
4.3.1 查看守理员管辖资产明细 20
4.3.2 查看所有资产使用状况 23
4.3.3 添加固定资产 24
4.3.4 报废固定资产 27
4.4 普通顾客使用窗口 27
4.5 顾客注册窗口 28
5 后台设计 29
5.1 系统架构 29
5.2 服务器 30
5.3 数据库构造 30
参照文献 31
道谢 32
1引言
1.1系统设计背景
过去,人们管理资产办法大多采用纸制记录、归档方式,这样各式各样本子或者表单,容易丢失并且复杂、混乱,也没有一种系统整合,让解决资源时候,显得繁琐,导致挥霍较多时间及精力。
处在信息时代今天,需要高效解决和使用信息。那么,信息化管理就变得特别重要。结合实际状况和社会高度需求,开发一种固定资产管理系统,从而实现资产专人专项负责、以便对资产进行分析和查询。
1.2系统开发意义
固定资产管理系统将所需功能整合在一起统一解决,以便了顾客对资产解决,节约时间、精力。
本系统采用JSP编程语言,该语言是面向对象编程语言,模块化解决,扩展性强,拥有DAO层强大支持,便于数据管理。同步也具备较高安全性,易用性。业务逻辑层采用JSP语言,类设计和引用更利于程序开发、控制,具备较高可读性。应用层采用HTML+CSS方式,让页面更美观。
本系统采用B/S构造,无需安装客户端,随时随处都可以使用,使用简朴、以便。具备通用性,不必紧张客服端兼容性问题。
1.3系统开发工具选用及简介
该系统开发工具选用JSP网络编程语言,支持服务器选用TomCat,数据库选用MySQL。
1.3.1 JSP优势及特点
JSP是当前流行一种动态网页应用程序,它不但能跨越平台执行功能强大动态网页,并且可以以JAVA技术为基本动态网页程序。当前比较流行支持JSP服务器是Tomcat。JSP程序要通过JDK编译后来才干执行,JSP不能直接传送到浏览器而是要先编译成Servlet,Tomcat负责将JSP网页转换成一种Servlet,然后编译Servlet。
JSP提供在HTML代码中混合某种程序代码。在JSP环境下,HTML代码重要负责描述信息显示样式,而程序代码则用来描述解决逻辑。JSP面向Web服务器技术,客户端浏览器不需要任何附加软件支持。
1.3.2 服务器优势及特点
它是一种小型轻量级应用服务器,运营时占用系统资源小 ,支持负载平衡与邮件服务等开发应用系统中惯用功能,并且不断改进和完善。
Tomcat合用于中小型系统和并发访问顾客不太多场合,是开发和调试JSP程序首选。先进技术、稳定性能、源码开放和免费获取机制,使得Tomcat深受Java兴趣者爱慕并得到了许多软件开发商承认,成为当前相称流行Web应用服务器。
1.3.3 数据库优势及特点
MySQL是一种小型关系型数据库管理系统,MySQL被广泛地应用在Internet上中小型网站中。由于其体积小、速度快、总体拥有成本低,特别是开放源代码这一特点,许多中小型网站为了减少网站总体拥有成本而选取了MySQL作为网站数据库。
其长处有:
(1) 综合统一;
(2) 高度非过程化;
(3) 面向集合操作方式;
(4) 以一种语法构造提供各种使用方式;
(5) 语言简洁,易学易用。
2 需求分析
2.1 可行性分析
可行性分析是为了弄清晰系统开发项目是不是可以实现和值得进行研究过程,因此,进行可执行性分析是非常必要,通过最初设计目的和进行市场调查得出如下四点可行性分析:
经济可行性:该系统设计只是作为本人毕业设计,因此没有什么经济效益可谈,开发过程不会产生大开销;
技术可行性:既有技术已经可以充分支持、开发该系统,并且已有现行系统能稳定运营;
运营可行性:该系统采用B/S构造,只要可以将服务器架构好后,运营在浏览器中,就能随处使用;
法律可行性:该系统是作为毕业设计与商业无关,又是自主开发设计,因而不会构成侵权,在法律上是可行。
2.2 功能性需求分析
2.2.1 辨认系统业务
对于固定资产管理,顾客管理和资产管理这两个业务解决过程可以分为:
(1) 分角色顾客管理;
(2) 查看资产管理;
(3) 添加资产管理;
(4) 资产报废解决;
(5) 修改顾客信息;
(6) 修改资产信息。
2.2.2 系统数据流图
作为固定资产管理系统,顾客登录系统就是对其中资产做相应解决。顾客分为三类:超级管理员、管理员、普通顾客。
超级管理员具备查看其管辖下管理员信息,以便与其联系。此外,超级管理员还可以修改个人信息。管理员登录成功后显示其管理所有资产信息,并能进行资产添加、报废和查看所有资产操作。普通顾客登录成功后,就能显示出所有资产信息,选中需要资产再查询出明细后,更改使用状况并登记。下面将依照不同角色顾客访问系统数据解决流程,用数据流图方式阐明:
1. 超级管理员数据解决流程:
超级
管理员
1
解决
事务
登录信息
D1
管辖管理员信息
超级管理员ID
2
产生
信息
管理员信息
超级
管理员
查询
成果
图2-1:超级管理员查看所管辖人员信息
超级
管理员
1
解决
事务
登录信息
D1
修改信息
超级管理员ID
2
显示
修改
信息
修改信息
修改信息
图2-2:超级管理员修改个人信息
2. 管理员数据解决流程:
管理员
管理员
1
解决
事务
登录信息
D1
查询资产信息
2
产生
信息
资产信息
事务
显示信息
图2-3:管理员查看所有资产信息
管理员
1
解决
事务
登录信息
D1
更新信息
管理员ID
2
提示
信息
更新信息
添加/报废信息
图2-4:管理员添加/报废资产信息
3. 普通顾客数据解决流程:
1
解决
事务
登录信息
D1
查询资产信息
2
产生
信息
明细
提取信息
事务
修改信息
普通
顾客
D2
更新信息
3
提示
更新
成功
显示信息
图2-5:普通顾客修改资产信息
2.3 非功能性需求分析
在这里列举出所有非功能性需求,重要涉及可靠性、安全性、可扩展性。
2.3.1 可靠性需求
本系统属于B/S构造,运营在浏览器端,因此对运营平台没有限制,使用以便,无需安装客户端。系统设计时将考虑容错性,完整解决系统运营是将遇到问题。
2.3.2 安全性需求
系统拥有一种登录页面,只有当顾客拥有账号才干进行访问和操作,保障了资产安全性。此外,顾客分为三种权限,操作不同内容保障了整个后台数据库里数据安全性和完整性。
2.3.3 可扩展性需求
系统采用JSP编程语言,该语言是面向对象编程语言,模块化解决,扩展性强,拥有DAO层强大支持,便于数据管理。将类封装在包里面,以便之后扩展功能,导入数据包后就可以直接调用了,操作以便,整体性强。
3 详细设计
3.1数据库设计
3.1.1 数据库表创立
1. 数据库名称: management_ property;
2. 访问数据库顾客名:root,密码:1234;
3. 按访问权限将登录顾客分为三类:创立者(超级管理员superadmin)、管理者(管理员admin)、顾客(普通顾客user);
4. 此外,创立4个反映资产状况表:资产存储部门表(department)、资产使用部门表(location)、资产使用状态表(status)、资产类型表(type)。
3.1.2 实体-关系模型(E-R图)
1. 登录顾客之间关系模型:
超级管理员
顾客名name
密码password
编号id
管理员
管理
n
1
性别sex
部门dep
权限quanxian
电话phone
编号id
顾客名name
密码password
性别sex
部门dep
权限quanxian
电话phone
superID(外键)
图3-1:超级管理员表、管理员表关系
表3-1:超级管理员表(superadmin表):
字段名称
字段类型
字段描述
主键/外键
id
char(2)
编号
主键
name
varchar(20)
顾客名
password
varchar(20)
密码
sex
char(2)
性别
dep
varchar(20)
所属部门
quanxian
varchar(20)
权限
phone
varchar(20)
电话
表3-2:管理员表(admin表):
字段名称
字段类型
字段描述
主键/外键
id
char(2)
编号
主键
name
varchar(20)
顾客名
password
varchar(20)
密码
sex
char(2)
性别
dep
varchar(20)
所属部门
quanxian
varchar(20)
权限
phone
varchar(20)
电话
superID
char(2)
超级管理员编号
外键
表3-2 中superID属性用于关联与超级管理员之间关系,反映管理员(admin)管理者。
2. 资产与其她实体之间关系模型:
编号
姓名
生产厂家
数量
价格
入库时间
类别号
使用状态号
存储部门号
使用者编号
管理者编号
存储
部门
编号
名称
资产
使用状态
状态
编号
名称
分类
类别
编号
名称
n
1
1
1
1
n
生产日期
使用部门号
责任
n
管理员
编号
名称
1
图3-2:资产表及类别、状态、部门表关系
表3-3:固定资产总表(property表):
字段名称
字段类型
字段描述
主键/外键
propertyId
char(9)
资产编号
主键
propertyName
varchar(40)
资产名称
propertyMaker
varchar(30)
资产生产厂家
propertyNum
int
资产数量
propertyValue
float
资产金额
propertyPublicTime
date
生产日期
propertyImportTime
date
入库时间
propertyLocationNo
int
资产存储位置编号
外键(location)
propertyTypeNo
int
资源所属类别号
外键(type)
propertyStatusNo
int
资产使用状态号
外键(status)
propertyDepartmentNo
int
存储部门编号
外键(department)
propertyUserNo
int
保管员编号
外键(user)
adminNo
int
管理员编号
外键(admin)
表3-4:状态信息表(status表):
字段名称
字段类型
字段描述
主键/外键
statusId
int
资产状态自编号
主键
statusName
varchar(10)
资产状态名
省略表location、type、user、department,以上四张表均只有编号和名称两个属性。
3.2 系统构造图
资产管理系统(index.html)
登录成功
无帐号(register.jsp)
录入数据库(registerCheck.jsp)
user.jsp
admin.jsp
superadmin.jsp
showAdminInformation.jsp
updateinformation.jsp
oldProerty.jsp
addProerty.jsp
getAllProerty.jsp
图3-3:系统大体构造
顾客访问资产管理系统是按权限不同,进去不同管理页面,解决业务流程。图3-3中省略了user.jsp页面下功能页。
操作大体方式:
访问管理系统首页(index.html)
无帐号无法访问,点“注册”帐号
跳转到注册页面(register.jsp),注册普通顾客访问
对的后,调转到首页
重新填写
错误
按权限不同,访问不同页面进行解决
图3-4:登录时两种状况阐明
3.3功能需求
3.3.1顾客登录模块
输入顾客名及密码
顾客进入登录页面(index.html)
判断顾客名与否对的?
判断密码与否对的?
是
访问数据库拟定顾客类型,转向相应页(superadmin.jsp/admin.jsp/user.jsp?)
)
是
否
否
(重新输入密码)
选取哪类顾客登录?
superadmin/admin/user?
图3-5:顾客登录模块
图3-5中反映了顾客登录该系统过程。依照权限不同,顾客跳转到属于自己访问权限页面,顾客可对自己信息进行更改,或者是对资产信息进行更改。
3.3.2访问权限不同顾客管理模块
1. 超级管理员管理模块:
显示管理页面(superadmin.jsp)
登录成功
选取哪一模块?
显示管辖管理员(showAdminInformation.jsp)
更改个人信息(updateinformation.jsp)
与否更改?
是
否
更新到数据库
选取查询方式
与否查询成功?
查询到之后相应操作
是
否,未管理顾客
图3-6:超级管理员管理模块
超级管理员具备查询自己所管辖顾客和修改个人信息权限。图3-6中反映了超级管理员两个功能模块操作流程。
2. 管理员管理模块:
显示管理页面(admin.jsp)
登录成功
显示管理员管辖资产信息
查看该资产明细信息(detail.jsp)
determin.jsp
查看所有资产使用状况(getAllProerty.jsp)
添加固定资产(addProerty.jsp)
报废固定资产(oldProerty.jsp)
显示系统中所有资产信息
填写资产信息
错误
信息填写对的提交数据库(updateAdd.jsp)
对的
显示资产,报废?
报废信息更新到数据库(propertyShow.jsp)
报废
图3-7:管理员管理模块
管理员具备添加资产和修改资产状态权限,能查看所有数据库中所有资产信息,还能查看属于自己管辖资产详细信息。图3-7中反映了管理员四个功能模块操作流程。
3. 普通顾客管理模块:
显示管理页面(user.jsp)
登录成功
显示所有资产信息
与否选取需要资产?
更新资产当前使用状况(borrow.jsp)
是
否
资产信息更新到数据库 (borrowCheck.jsp)
图3-8:普通顾客管理模块
图中提到“更新资产当前状况”是指:使用该资产放置位置、使用者、使用状态。
4.注册模块:
省略注册模块操作流程,注册模块(register.jsp)只能注册普通顾客,不能随意注册超级管理员和管理员。通过验证(registerCheck.jsp)顾客名和密码对的性后,更新到user表中。
4 前台设计
4.1 固定资产管理系统登录窗口
图4-1:管理系统登录页(index.jsp)
如下代码段为图4-1中核心某些:
<td colspan="2">
<input name="kind" type="radio" value="superadmin" checked="checked" >
<font color="#FFFFFF" size="3" face="黑体">创立者 </font>
<input type="radio" name="kind" value="admin">
<font color="#FFFFFF" size="3" face="黑体"> 管理员 </font>
<input type="radio" name="kind" value="user">
<font color="#FFFFFF" size="3" face="黑体">顾客</font>
</td>
我运用<input>标签中name属性,判断是哪一类顾客登录系统进行操作。提交后,页面跳转到indexCheck.jsp,如下为indexCheck.jsp中某些代码:
<jsp:useBean id="judgment" scope="page" class="process.login">
<jsp:setProperty name="judgment" property="*" />
</jsp:useBean>
<jsp:useBean id="db" scope="page" class="DAO.DBConn"/>
<jsp:useBean id="cov" scope="page" class="DAO.Convert"/>
<%
String sql = "";
String kind = judgment.getKind();
String pwd = "";
getKind()办法调用是login类里面办法,重要用于确认是哪类顾客登录,以便数据库查询与否存在该顾客及之后系列操作。
ResultSet rs = null;
String name = "";
String id = "";
name += cov.toGb(request.getParameter("username"));
拟定表名
sql = "select password,id from "+ kind +" where name='"+ name +"' " ;
rs = DBConn.executeQuery(sql);
if(rs.next()){
pwd = rs.getString("password");
id = rs.getString("id");
}
if(judgment.getPassword().equals(pwd))
{
session.setAttribute("id",id);
int flag = judgment.getFlag();
getFlag()办法调用是login类里面办法,运用switch语句解决页面跳转。
out.print(flag);
switch (flag){
case 1:
response.sendRedirect("superadmin.jsp");
break;
case 2:
response.sendRedirect("admin.jsp");
break;
case 3:
response.sendRedirect("user.jsp");//修改跳转页面
break;
}
}
else {
String message= "登录失败,顾客名或密码有误!!";
session.setAttribute("error",String.valueOf(message));
response.sendRedirect("index.jsp");}
%>
定义一种id是为了将该登录顾客id写入session里面,之后判断顾客与否登录和控制顾客对资产或者是管理操作。
如下是process包里面login.java某些代码,用于确认哪一类顾客登录系统。
package process;
public class login {
private String id;
private String password;
private String kind;
Flag值结合indexCheck.Jsp中switch语句完毕页面跳转。
private int flag=0;
public login(){
}
public int getFlag(){
if(kind.equals("superadmin")) flag=1;
if(kind.equals("admin")) flag=2;
if(kind.equals("user")) flag=3;
return flag;
}
}
4.2 超级管理员使用窗口
查看守辖管理员信息,详见图11
详见图12
图4-2:超级管理员登录成功后跳转页superadmin.jsp
以superadmin表中id为3顾客为例,阐明“显示管辖管理员”实现过程。
如下是实现查询该功能核心代码,在entities包里面superadmin类调用getAdmin()办法,查询到管辖管理员之后显示到管理页上(showAdminInformation.jsp)。
public ResultSet getAdmin() throws Exception{ //超级管理员通过该办法查询其管理人员信息
String sql="select admin.id ,admin.name,admin.sex,admin.dep,admin.phone from admin,superadmin where superadmin.id = superID and superadmin.id= " + id;
使用静态方式调用DBConn中办法。
where背面语句实现两张表连接,并查询出只有id为3顾客管理信息。
rs = DBConn.executeQuery(sql);
return rs;
}
图4-3:显示查询出该超级管理员管理人信息
图4-3中阐明了id为3超级管理员管辖了两名管理员,分别是id为1lisi和id为2xiaohua。
图4-4:超级管理员修改个人信息
以id为3超级管理员为例,如下是修改过程:
图4-5:顾客信息修改前数据库控制台中查询成果
图4-6:修改后跳转到update.jsp提示页面
图4-7:修改完毕后数据库中更改状况
4.3 管理者使用窗口
4.3.1 查看守理员管辖资产明细
注1
图4-8:管理员登录成功后跳转页admin.jsp
管理员登录成功后,在其管理页面就会显示管理资产信息,即注1内容。点击显示该资产详细信息。(详见图4-9、4-10)
1. 如下是admin.jsp中某些代码:
<jsp:useBean id="admin" scope="page" class="entities.admin"/>
<jsp:useBean id="determin" scope="page" class="process.determin"/>
<jsp:useBean id="cov" scope="page" class="DAO.Convert"/>
<%
request.setCharacterEncoding("GB2312");
String id = (String)session.getAttribute("id");
将之前写入session里面值取出,该值是登录管理员id。
if(id==null){
response.sendRedirect("index.jsp");
}
运用id值查询出资产名称显示,查询办法后详。
String propertyName = "";
admin.setId(id);
determin.setAdminNo(id);
ResultSet rs = admin.getProperty(id);
while(rs.next())
{
propertyName = rs.getString("propertyName");
%>
<tr >
将id值存入determin类里,用于之后提取该资产详细信息。
<td> <a href="determin.jsp?propertyName=<%=propertyName%>"><%=propertyName%></a></td>
</tr>
<%
}
%>
2. 如下是entities包中admin类里getProperty()办法:
public ResultSet getProperty(String id )throws Exception{ //读取该管理者所管理资产信息
//查询条件:
//1.资产管理者编号与管理者编号匹配
//2.管理者管理资产编号与资产编号匹配
String sql="select propertyId,propertyName "+
"from admin,property "+
"where property.adminNo='"+ id +"' ";
ResultSet rs = DBConn.executeQuery(sql);
使用此方式传递参数
return rs;
}
图4-9:显示选中资产
如下是determin.jsp中某些代码:
<%
String propertyName = request.getParameter("propertyName");
String p_id = "";
ResultSet rs = determin.getPropertyNo(cov.toGb(propertyName));
while(rs.next()){
接受到资产名称后,一定要进行解决乱码,否则使用determin.getPropertyNo()办法,得不到值。
p_id = rs.getString("propertyId");
%>
<tr>
<td><%= p_id %></td>
<td><%= cov.toGb(propertyName) %></td>
<td><a href="detail.jsp?p_id=<%=p_id%>">进入</a></td>
使用此办法将资产id传给detail.jsp页面解决。
</tr>
<%
}
%>
图4-10:显示该资产明细
查看完后,点击“返回”页面将跳转到admin.jsp页面上,管理员可以完毕其她功能操作。
4.3.2 查看所有资产使用状况
图4-11:显示数据库中所有资产信息
本功能设计是为了以便管理者查看所有资产使用状态,及时得到资产信息。
4.3.3 添加固定资产
注2
图4-12:增长新资产(addProperty.jsp)
填写固定资产基本信息,值得一提是,下拉列表与数据库之间关联(注2)。在数据库中存储“资产类型”、“资产状态”、“资产存储部门”是采用编号方式。查询资产明细时,也是需要与相应表建立连接。
这里前台下拉列表是文字显示,后台使用如下代码将文字转化为数据,添加到数据库property表中。
1. 一方面在addProperty.jsp页面中,使用<select>和<option>标签创立下拉列表,value属性是重点,将显示列表信息与value值相应;
<tr>
<td>资产类型:</td>
<td>
<select name="type">
<option value ="计算机类">计算机类</option>
<option value ="旅游类">旅游类</option>
<option value="故事类">故事类</option>
<option value="文史类">文史类</option>
<option value="保健类">保健类</option>
<option value="科学类">
展开阅读全文