名片管理系统设计报告和代码分析Word文件下载.docx
- 文档编号:16880742
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:25
- 大小:274.95KB
名片管理系统设计报告和代码分析Word文件下载.docx
《名片管理系统设计报告和代码分析Word文件下载.docx》由会员分享,可在线阅读,更多相关《名片管理系统设计报告和代码分析Word文件下载.docx(25页珍藏版)》请在冰豆网上搜索。
Struts中的类型转换器方便编程,同时它的技术支持也很全面。
2.1.2Struts2的搭建
Struts2是基于eclipse的一个技术扩展,版本更新十分迅速,但是它的搭建仅需三步。
(1)导入Struts2的相关jar包。
其中包括一些必要的jar包和扩展jar包。
(2)编写于src中的Struts.xml,并根据不同的action控制器和jsp界面进行相应的配置。
(3)在web.xml中加入Struts2的MVC框架启动配置。
2.1.3Struts2的核心组件
Struts2的核心配置文件是struts.xml,所以struts.xml有其重要的作用,用户请求被Struts2的核心控制器FilterDispatcher拦截,FilterDispatcher是一个servlet过滤器,它是整个Web应用的配置项,然后业务控制器代理通过配置管理类查询配置文件struts.xml中由哪个Action处理。
如果struts,xml不能满足web的需求,那么剩下的就是自定义一些web应用的执行环境和配置应用中的组件。
其中执行环境主要通过“struts.properties”来完成。
2.1.4Struts2的应用组件
struts.properties文件:
这个文件提供了一种更改框架默认行为方式的机制。
在一般情况下,如果不是打算让调试更加方便的话,你根本无须更改这个文件。
在“struts.properties”文件中定义的属性都可以在“web.xml”文件的“init-param”标签中进行配置,或者通过“struts.xml”文件中的“constant”
标签来修改。
我们可以更改其中的一些属性来改变Freemarker的选项——改变Action映射类,判断是否要重新载入xml配置文件。
Struts2中Action类的配置能够让Struts2知道Action的存在,并可以通过调用该Action来处理用户请求。
Struts2使用包来组织和管理Action。
Action配置在struts.xml中的配置格式如下:
<
actionname="
名称"
class="
Action对应的类"
>
…<
/action>
action>
元素的常用属性有:
name:
指定客户端发送请求的地址映射名称。
class:
指定Action对应的实现类,可选项。
method:
指定Action类中处理方法名,如get或post方法,可选项。
converter:
指定Action类型转换器的完整类名,可选项。
Struts2的拦截器的作用就是执行Action处理用户请求之前或者之后,执行拦截器来进行某些拦截操作。
例如,用户请求删除某些数据时,拦截器判断用户是否有权删除,如果有权限,就通过Action删除,如果没有权限将不执行Action操作。
2.1.5Struts2的实现方式
Ioc方式:
在Struts2框架中,可以通过IoC方式将Servlet对象注入到Action中,需要在Action中实现以下接口
(1)org.apache.struts2.util.ServletContextAware:
实现该接口的Action可以直接访问ServletContext对象,该接口中有voidsetServletContext(ServletContextservletContext)方法。
(2)org.apache.struts2.interceptor.ServletRequestAware:
实现该接口的Action可以直接访问HttpServletRequest对象,该接口有voidsetServletRequest(HttpServletRequestruquest)。
(3)org.apache.struts2.interceptor.ServletResponseAware:
实现该接口的Action可以直接访问HttpServletResponse对象,该接口有voidsetServleResponse(HttpServletResponseresponse)。
(4)org.apache.struts2.interceptor.SessionAware:
实现该接口的Action可以直接访问HttpSession对象,该接口有voidsetSession(Mapmap)方法。
非Ioc方式:
Struts2提供ServletActionContext类获得ServletAPI。
该类中的常用方法有:
staticgetRequest():
获取Web应用程序的HttpServletRequest对象。
staticgetResponse():
获取Web应用程序的HttpServletResponse对象。
staticgetPageContext():
获取Web应用程序的PageContext对象。
staticgetServletContext():
获取Web应用程序的ServletContext对象。
2.2Hibernate技术
2.1.2Hibernate的搭建
(1)导入struts2的相关jar包。
(2)在hibernate配置文件hibernate.cfg.xml文件中进行数据连接的配置。
hibernate.cfg.xml连接的数据库种类很多,根据不同的数据库进行相应配置。
例如本次系统使用mysql数据库,其连接方式:
(3)配置映射文件hibernate.hbm.xml。
它是为了建立实体类beans和数据库中相关表的映射关系。
2.1.2Hibernate的相关组件
.连接管理组件:
hibernate的连接管理服务提供了高效的数据库连接管理方法。
数据库连接是和数据库进行交互的唯一渠道,由于建立和关闭一个数据连接要消耗许多不必要的资源,所以,hibernate用连接池的方法来管理与数据库的连接,以此来避免频繁的建立和关闭数据库连接。
事务管理组件:
事务管理组件是数据库应用程序中需要额外处理的工作。
Hibernate通过事物来依次执行多个sql语句,而且保证这些语句都执行成功或者不成功。
对象/关系映射组件:
对象/关系映射组件技术可以实现从对象模型到数据库中关系模型的映射工作。
通过这一技术,hibernate实现了对象的持久化。
2.1.2Hibernate的主要类和接口
Configuration类:
它负责管理Hiberante的配置信息,它主要用来加载一些配置文件。
SessionFactory接口:
SessionFactory负责Session实例的创建。
Session接口:
Session是应用程序与数据库之间的一个会话,是Hibernate运作的中心,持久层操作的基础,相当于JDBC中的Connection。
Session对象是通过SessionFactory创建的。
它有取得持久化对象,保存,更新和删除持久化对象,
从Session生成Query对象等的用途。
2.3JSP技术
JSP全称JavaServerPage,由基本的HTML代码和嵌入在其中的Java代码共同组成。
JSP为建立高度动态的Web应用提供了一个独具特点的开发环境。
JSP技术通过使用Java语言编写tags和scriptlets,来封装产生动态网页的处理逻辑。
JSP将业务层代码与网页设计显示分离,支持可重用的基于组件的设计,在服务器端执行,返回给客户端的是一个HTML文本,因此客户端只要有浏览器就能浏览,这使基于Web的应用程序的开发变得安全可靠。
但是,Java的运行速度是用class常驻内存来完成的,并且它还需要硬盘空间来储存一系列的.java源文件和.class文件,以及对应的版本文件,因此它在一般情况下所使用的内存比起用户数量来说性能比很低。
JSP内的一些内置对象:
(1)request对象:
该对象封装了用户提交的信息,并通过调用该对象相应的方法来获取封装的信息,即获取用户提交信息。
(2)session对象:
该对象在第一个JSP页面被装载时自动创建,完成会话期管理,并且知道离开服务器再结束。
(3)response对象:
对客户的请求做出动态的响应的对象,并向客户端发送数据。
(4)application对象:
所有客户都共享的对象。
(5)out对象:
该对象是一个输出流,用out对象来向客户端输出各种类型的数据。
(6)Cookie:
Cookie是Web服务器保存在用户硬盘上的一段缓存记录。
Cookie允许一个Web站点在用户的电脑上保存信息并且再取回信息。
2.4数据库技术
数据库技术是信息系统的一个核心技术。
是一种计算机辅助管理数据的方法,它可以组织和存储数据,高效地获取和处理数据。
数据库技术的研究对象是数据,开发者用它来实现数据的添加、删除、修改、查询等功能,并利用应用管理系统最终实现对数据的处理、分析和理解,从数据中得到一些潜在的价值与不易于发现的规律。
本次课程设计采用的是Mysql数据库,采用Navicat的可视化界面,其优势是数据库规模较小、资源消耗小、运行速度较快、安全性高、灵活性强,Mysql数据库可以完全满足本次课程设计需求。
Navicat的可视化界面也带来了操作上的简化,它能更加直观清晰的展现出Mysql数据库中的信息,它能够以安全并且简单的方式创建、组织、访问并共用信息。
数据库的使用可以高效的对JavaBean中的实体类进行操作,hibernate连接方式直接让他们映射在一起,提高了效率,隔离了客户端与服务器端,增加了整个系统的安全性。
3、系统需求分析
3.1系统运行环境
3.1.1硬件运行环境
软件运行的硬件环境:
服务器端CPUIntelMMX233MHz。
内存要求:
基本内256MB内存以上。
显卡:
8MB以上的PCI或AGP显卡。
硬盘:
要求2G以上的可用空间来安装eclipse、mysql,并且配置struts2、hibernate和可视化界面下载。
3.1.2软件环境
运行的软件环境:
JDK、Mysql;
操作系统:
Windowsxp及以上版本;
浏览器:
IE6.0或以上版本,功能强大,可执行JavaScript,Tomcat8,Eclipse,支持多种Web协议;
Web数据库:
MySql使用方便,功能齐全。
Web服务器:
Tomcat8服务器是一个免费的开放源代码的Web应用服务器,技术先进、性能稳定,支持struts2的控制。
开发工具:
Eclipse,附带了一个标准的插件集,包括Java开发工具,Struts2、Hibernate相关工具。
3.2可行性分析
技术可行性:
项目成员已掌握基本的Java编程语音,有数学理论基础,有面向对象的编程思想,会操作Mysql数据库,并对课外知识有一定的了解,具备了完成名片管理系统的能力。
经济可行性:
安装环境的经济消耗较低,经济上可以满足。
操作可行性:
操作要求低,会使用简单的Windows系统操作即可。
法律可行性:
名片管理系统没有违反我国相关法律法规,法律上可行。
4、概要设计
本软件分为客户端和服务器端。
客户端主要实现信息的显示的功能,服务器端主要实现对用户的操作和提交的信息进行处理的功能;
客户端:
(1)登陆:
用户输入用户名和密码;
(2)注册:
用户输入个人信息和用户名以及密码;
(3)对名片的添加、删除、修改和查找;
(4)对回收站里的名片的还原、删除和查找;
(5)修改用户个人信息;
服务端:
(1)对用户的登陆操作进行处理;
(2)对用户的注册操作进行处理;
(3)对用户的添删改查操作进行处理;
(4)对用户的还原等操作进行处理;
(5)对用户的修改自己信息的操作进行处理;
图1系统处理流程图
5、数据库分析设计
本系统共包括一个数据库,数据库名为card.sql,该数据库共含有两个表格,分别为用户信息表(user)和名片信息表(cardinfo);
5.1表格字段设计
1.1用户信息表(user):
字段名为:
id;
用户名(name);
密码(password);
性别(sex);
工作(work);
手机(telephone);
邮箱(email);
地址(address);
表格设计为:
字段
类型
长度
主键
空
递增
id
int
11
Y
N
name
VARCHAR
40
password
80
sex
work
255
telephone
address
图1用户信息表(user)
1.2名片信息表(cardinfo):
回收站标记(flag);
用户(user);
flag
user
图2名片信息表(cardinfo)
5.2名片管理系统各实体间的E-R图
图3名片管理系统各实体间的E-R图
6、系统的详细设计与实现
6.1系统功能描述
1.1系统功能描述
用户登录系统;
用户注册;
(3)添加名片:
用户添加自己的联系人名片;
(4)删除名片:
用户将自己的联系人名片放入回收站;
(5)修改名片:
用户修改自己的联系人名片;
(6)查找名片:
用户查找自己的联系人名片;
(7)彻底删除名片:
用户将自己的联系人名片从回收站删除;
(8)恢复名片:
用户将自己的联系人名片从回收站还原;
(9)修改用户信息:
用户修改自己信息;
1.2系统功能模块图
图4系统功能模块图
6.2系统的数据流图
图5系统的数据流图
6.3系统的具体实现
(1)工程类和JSP网页
图6工程类和JSP网页
(2)系统的详细实现
各个主要界面和实现的核心代码:
登陆界面
代码:
publicObjectlogin(useru)throwsException{
try{
Sessions=null;
s=HibernateSessionFactory.getSession();
Queryquery=(Query)s
.createQuery("
selectcfromusercwherec.name=:
nameandc.password=:
password"
);
query.setParameter("
name"
u.getName());
u.getPassword());
query.setMaxResults
(1);
useru2=(user)query.uniqueResult();
returnu2;
}catch(Exceptione){
HibernateSessionFactory.closeSession();
returnnull;
}
}
注册界面
publicintregister(useru)throwsException{
Transactiontx=null;
tx=s.beginTransaction();
intr=(Integer)s.save(u);
u.setId(r);
mit();
return1;
return0;
修改个人信息
publicintupdateself(useru)throwsException{
updateusercsetc.name=:
name,c.password=:
password,c.sex=:
sex,c.work=:
work,c.telephone=:
telephone,c.email=:
email,c.address=:
addresswherec.id=:
id"
sex"
u.getSex());
work"
u.getWork());
telephone"
u.getTelephone());
email"
u.getEmail());
address"
u.getAddress());
u.getId());
intr=query.executeUpdate();
returnr;
添加名片
publicintinsert(cardinfocf)throwsException{
cf.setFlag
(1);
s.save(cf);
删除名片(放入回收站)
publicintdelete(intid)throwsException{
//cf.setFlag(0);
updatecardinfocsetc.flag=:
flagwherec.id=:
flag"
0)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 名片 管理 系统 设计 报告 代码 分析