999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于JSP工廠模式的工資查詢系統設計與實現

2012-04-29 09:01:56郭文龍
計算機時代 2012年11期

郭文龍

摘要: 分層思想在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 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的這一問題[1],可大大的提高開發效率,并保證tomcat輕裝上陣。

工廠就是生成產品(對象)的地方,對于復雜的對象生產過程,比如按條件生成不同的對象實體時,不適合用類的構造函數實現(這樣會導致構造函數過于復雜),進而可用工廠方式代替。工廠模式其實質性的內容就是:提供創建對象的接口,讓用戶選擇需要的產品。把對象的創建封裝起來,使得創建實例的責任與使用實例的責任分割開來,并由專門的模塊負責創建實例,而系統在宏觀上不再依賴于對象創建的細節[2]。

工廠開發模式分為簡單工廠模式、工廠方法、抽象工廠模式[3]。簡單工廠模式可以根據傳入的參數決定創建哪一個類的實例,它其實是工廠方法和抽象工廠模式在一定程度上的簡化形式。工廠原理如圖1所示。

圖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://127.0.0.1/role8Demo"

username="root" password="123456"

maxWait="5000" maxActive="4" maxIdle="4"/>

通過連接池獲取數據連接的代碼封裝成一個Java Bean,代碼如下:

javax.naming.Context context=newjavax.naming.InitialContext();

javax.sql.DataSource ds=(javax.sql.DataSource)context

.lookup("java:comp/env/jdbc/ds");

java.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();

}

}

……

}

在對工資進行上傳時,為了能把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 結束語

本文在采用工廠模式開發的基礎上,把公共模塊獨立出來,并切入到一些方法中去執行,這樣有利于開發效率的提高。與此同時關注系統級和用戶級的安全性,減少了系統被入侵的風險。

參考文獻:

[1] 吳小青.JSP+TOMCAT+MYSQL開源軟件整合配置初探[J].齊齊哈

爾大學學報,2012.28(4).

[2] 雷根平等.基于JSP的校園新聞發布系統設計與實現[J].電腦知識與

技術,2010.7.21:5750-5753

[3] 劉鋒等.DAO模式和抽象工廠模式在系統設計中的應用[J].計算機

與信息技術,2011.3:84-87

[4] 廖夢虎.JSP中數據庫的連接方法研究[J].長江大學學報,2011.8

(10):83-85

[5] 黃貽培.簡單工廠模式在數據訪問層中的應用[J].計算機工程與設

計,2009.30(7):1799-1800

主站蜘蛛池模板: 亚洲AV无码久久精品色欲| 日本在线免费网站| 精品国产网| 国产老女人精品免费视频| 欧美成a人片在线观看| 国产一区二区人大臿蕉香蕉| 91福利免费| 日韩毛片免费视频| 污网站免费在线观看| 在线观看网站国产| 欧美a在线| 毛片网站观看| 欧美日韩激情在线| 中字无码av在线电影| 国产精品成人观看视频国产| 3344在线观看无码| 国国产a国产片免费麻豆| 伊人成人在线| 亚洲91在线精品| 国模粉嫩小泬视频在线观看| 四虎影视8848永久精品| 91视频区| 欧美高清国产| 中文字幕亚洲乱码熟女1区2区| 亚洲欧美日韩综合二区三区| 无码AV高清毛片中国一级毛片| 国产精品自在拍首页视频8| 亚洲天堂2014| 久久久久青草大香线综合精品| 国产偷国产偷在线高清| 在线免费a视频| 色男人的天堂久久综合| 18禁不卡免费网站| jizz在线免费播放| 福利片91| 国产综合色在线视频播放线视| 狠狠操夜夜爽| 3p叠罗汉国产精品久久| 国产精品99一区不卡| 亚洲AV无码乱码在线观看代蜜桃 | 国产情精品嫩草影院88av| 大香伊人久久| 女人av社区男人的天堂| 亚洲91在线精品| 色综合成人| 国产地址二永久伊甸园| 视频二区亚洲精品| 久久亚洲美女精品国产精品| 黄色网页在线播放| 国产美女在线免费观看| 激情综合婷婷丁香五月尤物| 伊人久久久大香线蕉综合直播| 日韩精品一区二区三区swag| 亚洲—日韩aV在线| 一级毛片免费高清视频| 全免费a级毛片免费看不卡| 国产午夜精品一区二区三区软件| 国产在线拍偷自揄拍精品| 女人18毛片久久| 国产精品熟女亚洲AV麻豆| 亚洲成aⅴ人在线观看| 无码国内精品人妻少妇蜜桃视频| 日本高清免费一本在线观看 | 欧美a在线看| 亚洲国产精品美女| 日韩福利在线视频| 国产一国产一有一级毛片视频| 波多野结衣AV无码久久一区| 精品国产欧美精品v| 亚洲第一页在线观看| 欧美日韩午夜视频在线观看| 国产精品专区第一页在线观看| 天堂亚洲网| 国产亚洲视频在线观看| 国产91精选在线观看| 国内99精品激情视频精品| 国产天天色| 国产欧美精品专区一区二区| 亚洲精品卡2卡3卡4卡5卡区| 精品少妇人妻一区二区| 97国产在线视频| 国产v精品成人免费视频71pao |