宠物诊所管理系统
摘要:
本课
以JSP+ACCESS为开发环境~该网站主要用于对信息的管理。系统主要分为兽医管理模块、客户管理模块、宠物管理模块、病历管理模块四大部分组成。建设该网站的主要目的是为了方便内部人员查阅和管理信息。
一、网站的需要分析
系统分析即需求分析,是平台开发的一个不可缺少的环节,为了能够使本系统更好、更完善地被
出来,就必须先进行调查研究。在系统调查的基础上,对新系统的功能进行细致的分析,从而才能够开发出完整的系统设计。
该宠物诊所管理系统是利用纯粹的JSP技术来实现的。在实现本系统过程中,JSP负责数据的显示和获取,然后对数据进行处理。由客户端浏览器发出请求至服务器端JSP程序,JSP则对数据进行处理并转发至数据库服务器,数据库再将数据返回给JSP,JSP获取信息后,发送到客户端浏览器,得到响应显示数据。
随着饲养宠物的普遍性,今后宠物诊疗业势必会有一个迅速的发展,为了提高治疗宠物的工作效率,大多数宠物医院采用了电脑办公,增加了公司的成本,减少公司的利润。
1
二、网站功能分析
根据操作人员的需要,该宠物诊所管理系统包括兽医管理(浏览兽医、添加兽医、删除兽医),客户管理(查询客户、添加客户、更新客户),宠物管理(查询宠物、添加宠物、更新宠物),病历管理(添加病历、查询病历)。我主要负责的是客户信息管理模块。如图2-1所示。
首先要做的是用户管理,其主要包括两个操作:用户登录和用户退出。用户登录主要涉及到的是JSP技术,用它来获取和提交用户信息,通过审核,则提交给系统首页,否则继续显示登录页面,用户退出操作比较简单,只是通过程序语句实现。
客户信息管理模块包括客户信息添加、修改和查询3项操作。主要功能:
添加客户:可以添加新客户的名称、地址和联系方式。
查询客户:可以查看客户的信息。
更新客户:根据输入旧的客户名称,可对该客户信息进行修改或删除。
兽医管理
添加客户
宠客户管理 查询客户
物
更新客户
诊宠物管理
断
系
病历管理 统
退出
图2-1系统模块内容
2
三、数据库设计
本系统由于只是一个管理性网站,所以系统中所涉及到的数据会比较多,因此,使用到的数据表也不少,总共有5张表。而我所负责的是客户管理模块,涉及的表有两张。在Access中,建立数据库MyStudents.mdb,在该数据库中建立employee(系统用户表)和kehu(客户表)。
(1)employee系统用户表:该表是主要存储用户登录该系统时所需要的信息,如表3-1所示。
表3-1 employee系统用户表描述
字段名称 含义 数据类型 约束
name 用户名称 文本 主键
password 用户密码 文本
(2)kehu客户表:该表主要用来存储来诊所进行治疗的宠物主人信息,如表3-2所示。
表3-2 news数据表描述
列名 含义 数据类型 约束
id 客户序列号 自动编号 主键
name 客户名称 文本
address 客户地址 文本
tephone 客户联系电话 文本
四、系统功能模块设计
首先配置一个ODBC数据源,具体步骤:
(1)单击【开始】按钮,选择【控制面板】|【管理工具】选项同,双击【数据源(ODBC)】图标,弹出【ODBC数据源管理器】对话框。
(2)在【系统DSN】选项卡中,单击【添加】按钮,弹出【创建新数据源】对话框。
(3)选择数据源的驱动程序为Microsoft Access Driver
(*.mdb),然后单击【完成】按钮弹出【ODBC Microsoft Access
安装】对话框,输入数据源名称为MyStudents,单击【选择】
3
按钮选择前面创建的Access数据库所在的目录,选择MyStudents.mdb文件单击【确定】按钮返回,再次单击【确定】按钮完成数据源配置。
4.1用户管理模块
诊所职员打开浏览器,输入应用系统的URL,浏览器中显示登录界面。职员输入用户名称和密码后提交页面。系统验证职员的登录:若用户名称或密码不正确,系统将继续显示登录页面,此时职员可再次登录;若用户名称和密码正确,职员登录成功,则系统显示系统首页。
新建dl.jsp,打开“应用程序”窗口,在数据库选项卡里选择“sun JDBC-ODBC驱动程序(ODBC)数据库”选项,弹出“sun JDBC-ODBC驱动程序(ODBC)数据库”对话框,设置“连接名称”为MyStudents,“驱动程序”不变,“URL”为jdbc:odbc:MyStudents,“Dreamweaver应连接”选中使用测试服务器上的驱动程序,单击“测试”按钮进行测试连接。
在“应用程序”窗口,选择“绑定”选项卡,选择“记录集(查询)”选项,弹出“记录集”对话框,“名称”默认,“连接”为MyStudents,“表格”为employee,其他都默认,单击确定即可。
在设计窗口中,插入表单,在表单里插入两个文本域名称分别是name和password,标签文字分别是用户名和密码,插入两个按钮“登录”和“重置”,用来提交表单。光标停留在表单中,选择【插入】|【应用程序对象】|【用户身份验证】|【登录用户】命令。即可完成用户登录页面。
当运行时,输入正确的用户名和密码,单击“登录”按钮,页面没有反应时,则需在该页面代码中添加以下一条语句“request.setCharacterEncoding( "gb2312");”即可。我们再给“登录”按钮添加一个“检查表单”行为,勾选“必需的”,用户名和密码可接受“任何东西”,用于用户名和密码不能为空,否则弹出提示信息。图4-1用户登录。
4
图4-1用户登录
4.2客户信息管理模块
客户信息管理模块包括查询、添加和更新客户3项操作。
添加客户操作就是将在诊所治疗宠物的主人信息添加到后台数据库中。包括客户名称,客户地址,客户联系电话。
查询客户操作是查询存储在诊所治疗宠物的主人信息,并显示在页面。根据输入客户名称或客户地址或客户联系电话,查询客户信息。
更新客户操作是修改或删除在诊所治疗宠物主人信息。根据输入旧客户名称,查询到该客户信息,选择“修改”则转到修改客户信息的页面,选择“删除”则可删除该客户信息。修改或删除的操作会与数据库中信息一致。
添加客户信息
新建tianjiakehu.jsp,利用在用户管理模块中运用的操作“连接数据库”,然后在设计窗口,选择【插入】|【应用程序对象】|【插入记录】|【插入记录表单向导】,打开【插入记录表单】对话框,设置“连接”为MyStudents,“找到表格”为kehu,“表单字段”将id字段删除,分别选择name,address,telphone
字段,将它们的标签分别改为名称,地址,联系电话。单击确定。在设计窗口中,将“插入记录”按钮的值改为确定,再给“确定”按钮添加一个“检查表单”行为,名称、地址和联系电话都勾选“必需的”,名称和地址可接受“任何东西”,联系电话选择可接受“数字”,添加客户信息时不能为空,否则弹出提示信息,为保证数据完整性。然后再插入一个“重置”按钮,动作为重设表单。插入布局对象【层】,输入“添加客户信息”文字,设置其字体和大小。在运行时,若输入数据是中文,但在数据库中显示的是“,”问号,这需在该页面代码中添加
5
“request.setCharacterEncoding( "gb2312");”语句即可。图4-2-1添加客户信息。
图4-2-1添加客户信息
查询客户信息
新建chaxunkehu.jsp,要使输入中文显示,在页面代码中添加“request.setCharacterEncoding( "gb2312");”语句。利用在用户管理模块中运用的操作“连接数据库MyStudents”和“绑定记录集(查询)”。在绑定记录集设置表格为kehu,其他都为默认即可。
在设计窗口中,选择【插入】|【表单】,在该表单中插入三个文本域,名称分别是name,address,telephone,标签分别为客户名称,客户地址,联系电话。插入三个按钮“查询”,“退出”和“显示全部”。“查询”按钮动作是提交表单,“退出”和“显示全部”按钮动作都为无,为其添加一个“转到URL”行为。
选择【插入】|【应用程序对象】|【动态数据】|【动态表格】,弹出【动态表格】对话框,设置显示为5,单击确定。选择动态表格第一列,删除该列。
选择【插入】|【应用程序对象】|【记录集分页】|【记录集导航条】命令,弹出对话框,选择文本单选按钮,单击确定。插入布局对象【层】,输入“查询客户信息”文字,设置其字体和大小。选中表单,为其添加动作“chaxunkehu1.jsp”(下面另存的页面)。图4-2-2查询客户信息。
6
图4-2-2查询客户信息
将该页面另存为chaxunkehu1.jsp,双击绑定的记录集,在记录集高级对话框中,添加三个变量MMColParam,MMColParam1,MMColParam2,默认值都为1,运行值分别是request.getParameter("name"),request.getParameter("telphone") request.getParameter("address")。在SQL语句中添加Where子句“WHERE name = 'MMColParam' or telphone = 'MMColParam1'
or address = 'MMColParam2'”单击确定。
选择设计窗口中的动态表格,为其添加一个服务器行为“如果记录集不为空则显示”。
在设计窗口中【插入】|【布局对象】|【层】,在中插入一个1行1列的表格,输入“注意:请在客户名称、联系电话、客户地址三项中任意填写一项进行精确的查询~”文字,选中表格为其添加一个服务器行为“如果记录集为空则显示”。图4-2-3查询客户1信息。
图4-2-3查询客户1信息
7
更新客户信息
更新客户信息包括修改客户信息和删除客户信息两个方面。新建gengxin2.jsp,利用在用户管理模块中运用的操作“连接数据库MyStudents”和“绑定记录集(查询)”。在绑定记录集设置表格为kehu,筛选选择name,其他都为默认即可。
在设计窗口中,插入表单,插入文本域name,标签为输入旧名称,在表单中插入一个“确定”按钮,动作为提交表单。
选择【插入】|【应用程序对象】|【动态数据】|【动态表格】,弹出【动态表格】对话框,设置显示为所有记录,单击确定。选择动态表格第一列,删除该列。在动态表格中插入两列,列头分别为修改和删除。
在修改列中插入一个表单,在表单中插入一个隐藏域和一个按钮。在删除列中也插入一个表单,在表单中选择【插入】,【应用程序对象】,【删除记录】命令,则自动插入了一个服务器行为。选中动态表格,为其添加一个“如果记录集不为空则显示”行为,在页面中插入一个层(主要是方便调整位置),在层中插入一个1行1列的表格,输入“注意:请确认用户是否存在,输入正确的客户名称~”,选中该表格为其添加“如果记录集为空则显示”行为。如图4-2-4更新2客户信息。
4-2-4更新2客户信息
由于在一个页面中记录集中的值只被调用一次,如果要多次调用则需要通过定义一个变量来实现。我们在gengxin2.jsp中,用到了“修改”和“删除”,它们都调用到了sc(自定义变量,把id赋给它)【语法:String
8
sc=Recordset1.getString("id");】。然而,必须把修改和删除列中隐藏域的值都改为<%=sc%>,还要将修改列中的隐藏域的name属性改为和删除列中隐藏域相同。
然后再新建页面gx.jsp,连接数据库,绑定纪录集,然后选择【插入】,【应用程序对象】,【更新记录】命令,更改一下标签名,两个按钮,“确认修改”和“重置信息”,“确认修改”按钮为其添加一个“检查表单”行为,保证数据完整性。在页面中再添加一个文本域,初始值为之前在gengxin.jsp页面中输入的名称,这就需要用到“session”,首先在gengxin.jsp中先定义一个变量valname【语法:String valname=request.getParameter("name");session.setAttribu
te("name",valname);】,然后在将gx.jsp中文本域的初始值赋于<%=request.getSession().getAttribute("name") %>。图4-2-5更新客户信息。
4-2-5更新客户信息
4.3网站界面设计
网站界面的设计,主要用到Photoshop和Fireworks软件来对图片进行处理和整合,运用Flash来制作了动态文字效果。整个界面除了以上四个模块,其他的都是放在一个界面
index1.html。
在index1页面中,我主要做了一个系统时间,导航和一些链接。背景是用自己制作的一个Flash动画,在Flash中主要用到了图形的遮罩,补间动画。当在网页中插入Flash动画时,它
9
将页面上的导航和系统时间一些元素遮盖了,只需要给它添加一个
或者是
就可以解决这个问题。该页面是被作为以上四个模块的主体部分。在以上的每一个模块页面中只需用语句<%@ include file="index1.html" %>就可以调用index1页面,然后利用层调整位置,使界面得到美化。需要有修改的地方,只需要单独打开修改,还是方便的。
在用户登录和更新客户信息模块中,按钮有所不同,我是通过自定义一个“button”CSS样式,然后将其添加到CSS样式中,再将按钮的id设置为之前定义的CSS样式“button”即可。
I当在地址栏中输入首页地址时,是不会被直接访问的,它会回到登录界面,通过输入正确的用户名和密码才可成功进入。我实现的方法是,新建一个pd.jsp,在该页面里输入以下代码:<%
String
username=(String)session.getAttribute("MM_Username");
if(username==null)
response.sendRedirect("dl.jsp"); %>
保存后,在shouye.jsp页面代码中添加一句:<%@ include file="pd.jsp" %>即可。
10
结 论
经过这一阶段的学习,我非常感谢学校里的所有领导及老师,是他们提供了这么好的条件,将我引入知识的更高领域。
在学习中,是他们教会我如何查找资料,如何利用现有的条件去设计与创作,是他们教会我遇到挫折如何面对,遇到困难如何克服。在网站设计中,我遇到了很多的问题,比如说程序在调试时出错,某个效果无法实现,就是老师一起帮助我调试和想方法,找出解决问题的方法,并一起调试代码;是他们帮我解除疑惑,耐心的教学。
我也通过查资料、搜集有关的文献并与同学一起讨论,来解决所遇到的问题,这让我我学到了很多知识,跨越了传统方式下的教与学的体制束缚,培养了自学能力和动手能力。并且由原先的被动的接受知识转换为主动的寻求知识,这可以说是学习方法上的一个很大的突破。在以往的传统的学习模式下,我们可能会记住很多的书本知识,但是通过此次设计,我们学会了如何将学到的知识转化为自己的东西,学会了怎么更好的处理知识和实践相结合的问题。
在此,我要谢谢各位老师对我的指导和关心,能做作为你们的学生将是我一生最美好最难忘的回忆。
参 考 文 献
(1)、王晓军,田中雨,刘跃军.JSP动态网站开发基础教程与实验指导.北京:清华大学出版社,2008.11
(2)、周桓,王殊宇.JSP项目开发全程实录.北京:清华大学出版社,2008.6
(3)、曹衍龙,徐慧.JSP网络开发实用
案例.北京:人民邮电出版社,2008.5
11