您的位置: turnitin查重官网> 计算机 >> 计算机管理 >查询系统基于JSP工厂方式工资查询系统设计和实现

查询系统基于JSP工厂方式工资查询系统设计和实现

收藏本文 2024-04-15 点赞:22508 浏览:97596 作者:网友投稿原创标记本站原创

摘要: 分层思想在JSP技术的开发过程中的优点是层次清楚,这有利于不同程序员分式开发,从而提高效率;但是在应用每一层相关类的时候需要实例化,这会增加系统开销。采用工厂模式在开发过程中向程序员提供一个“工厂”供程序员选择“零件”,可以减少实例化次数。工厂开发模式在JSP+tomcat的开发中,可结合分层思想,按照不同的层次进行开发,同时也可独立出公共模块切入到其他模块中,有效地避免了代码重复,提高了开发效率。
关键词: 分层; 工厂模式; JSP; tomcat
中国分类号:TP311文献标志码:A 文章编号:1006-8228(2012)11-66-03
Design and implementation of wage query system based on the JSP factory pattern
Guo Wenlong
(Dingxi Teachers College, Dingxi, Gansu 743000, China)
Abstract: The advantage of layered idea development in JSP technology process includes clear hierarchy, from which different programmers’ fractional development benefits, thus efficiency is improved. But in the application of each layer class it needs to be instantiated, and will increase the system overhead. Applying factory pattern extension development process provides programmers with a "factory" for the programmers to choose “parts”, which can reduce the number of instantiating. Factory development patterns in the development of JSP+tomcat can not only combine with hierarchical idea, according to the different levels of development, but also separate from public module entry

摘自:本科毕业论文结论www.udooo.com

to the other modules, to effectively solve the code duplication, improve development efficiency.
Key words: stratification; the factory pattern; JSP; Tomcat
0 引言
分层模式是在Web开发中应用比较成熟的一种技术,开发分三层结构:数据持久层、业务处理层和表示层,其中数据持久层负责数据库的连接并执行SQL语句,业务处理层主要负责业务逻辑,对用户或系统要求的逻辑功能进行统一管理,表示层主要提供以浏览器模式的用户操作界面,这三层架构大多采用struts+spring+hibernate架构来实现。但是这样的架构对怎么写作器(特别是对tomcat这样的轻量级怎么写作器)来说负荷非常大,不利于小型项目的开发。JSP+tomcat负荷虽然小,但开发时代码的重复率太高。而采用工厂开发模式能解决JSP的这一问题,可大大的提高开发效率,并保证tomcat轻装上阵。
工厂就是生成产品(对象)的地方,对于复杂的对象生产过程,比如按条件生成不同的对象实体时,不适合用类的构造函数实现(这样会导致构造函数过于复杂),进而可用工厂方式代替。工厂模式其实质性的内容就是:提供创建对象的接口,让用户选择需要的产品。把对象的创建封装起来,使得创建实例的责任与使用实例的责任分割开来,并由专门的模块负责创建实例,而系统在宏观上不再依赖于对象创建的细节。
工厂开发模式分为简单工厂模式、工厂方法、抽象工厂模式[3]。简单工厂模式可以根据传入的参数决定创建哪一个类的实例,它其实是工厂方法和抽象工厂模式在一定程度上的简化形式。工厂原理如图1所示。
1.tif> 图1工厂原理图
在图1中UserManagerFactory向开发者提供产品,而它所提供的产品依赖于接口UserManagerDao,接口的实现由类UserManagerDaoImpl来完成。

1 系统设计

教职工工资查询系统采用简单工厂模式来开发。本系统的主要功能模块如图2所示,此外还包括用户怎么写作登录模块和身份验证功能模块。根据这些功能模块和数据访问以及业务处理的要求,分成了四个层次,分别是数据访问层、业务逻辑层、工厂和使用工厂的页面,其中业务逻辑层分为业务接口和业务实现。
[工资查询系统][查看][设置保护][修改个人][工资查询][查看最近公告][教职工用户][系统管理员][修改个人][上传工资][删除工资][查看日志][删除日志][发布公告][删除公告][添加单个用户][批量添加用户][删除用户]
图2工资查询系统功能模块

1.1 数据访问层

数据访问层主要用来封装访问数据库的代码,并产生Connection对象。在教职工工资查询系统中采用数据连接池方式来连接数据库的,这样可以有效减少利用JDBC连接时多次实例化和容易忘记关闭Connection对象的弊端[4]。

1.2 业务接口层

主要用来向工厂提供产品的接口。根据功能图分成以下几种接口:
⑴ 用户管理:用来提供增加、删除、修改、查询、批量导入用户等方法。
⑵ 工资管理:用来提供上传工资文件并转化成数据表文件、删除和查询等方法。
⑶ 公告管理:用来提供添加、删除和查询公告等方法。

1.3 业务实现层

针对接口层的方法对系统进行实现。这是整个系统业务功能实现的核心,业务逻辑处理主要在业务实现层来完成,负责与数据访问层进行交互,向工厂提供“零件”。

1.4 公共业务层

针对系统的安全性要求,系统实现身份验证和日志记录功能,该功能主要用来防止非法用户进入系统,以及在发生了问题以后系统可根据日志记录来恢复。管理员和普通用户操作每一个页面时,通过身份验证功能对其身份进行验证,判断其合法性;通过将他们所进行的操作都写入数据库,当发生故障时这些数据用于数据分析和数据恢复。

1.5 工厂层

向页面级代码提供产品工厂。产品工厂主要是返回一个接口实现的实例化对象,每一个实现方法作为零件,在程序员需要的时候通过工厂去找到相应的方法调用。

2 系统实现

2.1 数据访问层的实现

在本系统中数据连接层的实现采用连接池方式,这样可以减少采用JDBC连接方式频繁地打开和关闭数据库,保证了效率。在tomcat下的Context.xml文件中配置如下:
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://12

7.0.0.1/role8Demo"

username="root" password="123456"
maxWait="5000" maxActive="4" maxIdle="4"/>
通过连接池获取数据连接的代码封装成一个Ja Bean,代码如下:
jax.naming.Context context=newjax.naming.InitialContext();
jax.sql.DataSource ds=(jax.sql.DataSource)context
.lookup("ja:comp/env/jdbc/ds");
ja.sql.Connection conn=ds.getConnection();

2.2 业务接口层

业务接口主要封装了业务方法,向工厂提供产品。在职工查询系统中,实现的业务接口主要有用户管理、日志管理、工资管理和公告管理接口,每个接口主要提供增加、删除、修改、查询方法。
public interface UserDao {
public void addUser(String insrtSql);
public void delUser(String uid);
public void updateUser(String sql);
public ResultSet queryById(String uid);
public void bitchAddUser(String file);
}

2.3 业务实现层

在业务实现层主要针对接口中的方法对其实现,并实现对一些更新操作的日志登记,因此在实现时不仅要对接口方法进行实现,也要实现日志写入功能。以用户管理实现为例,代码如下:
public class UserDaoImpl implements UserDao {
……
public UserDaoImpl()
{JDBCBean jb=new JDBCBean();
conn=jb.getConn();
LogFactory lf=new LogFactory();
try {
stmt=conn.createStatement();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

源于:免费毕业论文www.udooo.com


……
}
在对工资进行上传时,为了能把Excel文件中的数据导入到Mysql数据库,首先采用了JSPSmartUpload组件上传Excel文件到怎么写作器,然后利POI组件把Excel文件转换成Mysql数据库中的表,同时为了查询方便,在数据库中增加了映射表,映射表主要是能使查询顺利地找到目标工资表。

2.4 工厂层

工厂层为面向页面级代码实现提供产品,方便调用,以实现用户管理工厂为例,其代码如下:
public class UserFactory {
public UserDao getUserDaoInstance()
{return new UserDaoImpl();
}
}

2.5 页面调用

在页面实例化所需要的工厂,并通过工厂实例获取所需要的产品。
UserFactory uf=new UserFactory(); //**实例化一个工厂
ResultSet rs=uf.getUserDaoInstance().queryById(uid); //**调用
工厂的queryById(String uid)方法

3 重点问题

3.1 用户身份验证

当用户正常登录并通过用户名和验证时[5],开启两个session,一个用来记载用户名,另一个用来记载用户身份类别。本系统利用判断记载用户名的session是否为空和记载用户类别的session是否合法来阻止或者放行用户进入系统。为了防止用户通过非法入口进入系统内部,在系统内部每个页面也利用这一方法来判断用户的合法性,有效地减少了非法用户进入的途径。

3.2 用户安全

为了保证用户信息的安全性,除了对用户采用MD5加密以外,还允许用户本人设置安全问题,一旦用户忘记,也可以通过回答自己设置的安全问题来重新设置,而不是通过管理员来获取,进而保证了用户信息的安全性。

4 结束语

本文在采用工厂模式开发的基础上,把公共模块独立出来,并切入到一些方法中去执行,这样有利于开发效率的提高。与此同时关注系统级和用户级的安全性,减少了系统被入侵的风险。
参考文献:
吴小青.JSP+TOMCAT+MYSQL开源软件整合配置初探[J].齐齐哈
尔大学学报,201

2.28(4).

雷根平等.基于JSP的校园新闻发布系统设计与实现[J].电脑知识与
技术,2010.

7.21:5750-5753

[3] 刘锋等.DAO模式和抽象工厂模式在系统设计中的应用[J].计算机
与信息技术,201

1.3:84-87

[4] 廖梦虎.JSP中数据库的连接方法研究[J].长江大学学报,2011.8
(10):83-85
[5] 黄贻培.简单工厂模式在数据访问层中的应用[J].计算机工程与设
计,2009.30(7):1799-1800

copyright 2003-2024 Copyright©2020 Powered by 网络信息技术有限公司 备案号: 粤2017400971号