摘要:隨著網(wǎng)絡(luò)的飛速發(fā)展和普及,越來越多的用戶習(xí)慣上網(wǎng)瀏覽新聞。網(wǎng)頁逐漸融入人們的生活,已成為人們?nèi)粘I畹囊徊糠帧A硗馄髽I(yè)通過網(wǎng)站可以展示產(chǎn)品,發(fā)布最新動態(tài),與用戶進(jìn)行交流和溝通,與合作伙伴建立聯(lián)系等等。該文論述的就是采用JSP+Tomcat+MySQL開發(fā)環(huán)境開發(fā)動態(tài)的Web網(wǎng)絡(luò)新聞發(fā)布系統(tǒng)。本系統(tǒng)實(shí)現(xiàn)新聞的瀏覽,新聞的搜索與點(diǎn)評,同時(shí)還得兼顧欄目的路徑信息,新聞圖片信息。推薦新聞信息,新聞點(diǎn)擊信息和新聞審核信息等。另外后臺管理員可以對新聞進(jìn)行添加,審核,修改和刪除。
關(guān)鍵詞:Jsp技術(shù);樣式層;持久層;服務(wù)層;控制層
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2008)30-0638-05
JSP Technology Based on the News Release System
WU Jun-ping1, SUN Gen-qin2
(1. Gannan Normal University, Ganzhou 341000, China; 2. Gannan Normal University, Ganzhou 341000, China)
Abstract: Along with the rapid development of network and penetration, a growing number of Internet users browse news habits. Website gradually into the life of its people, has become a part of people's daily life. Another enterprise websites can display products, the latest developments and users of exchanges and communication, the establishment of a partnership and cooperation links, and so on. This paper is based on Tomcat+JSP+MySQL development environment to develop dynamic new Web network news release system. The system browser to get news, information and comment on the search, but had to balance the path columns of information, news photos of information. Suggest news and information, press information and press it audited information. In addition to background administrator can add news, examination, modification and deletion.
Key words: Jsp technology; style layer; persistence layer; service layer; control layer
1 系統(tǒng)開發(fā)策略
每一種開發(fā)方法都要遵循相應(yīng)的開發(fā)策略。任何一種開發(fā)策略都要明確以下問題:
1) 系統(tǒng)要解決的問題:如采取何種方法解決組織管理和信息處理方面的問題,對學(xué)校提出的新的管理需求該如何滿足等。
2) 系統(tǒng)可行性研究:確定系統(tǒng)所要實(shí)現(xiàn)的目標(biāo)。通過對學(xué)校狀況的初步調(diào)研得出現(xiàn)狀分析的結(jié)果,然后提出可行性方案并進(jìn)行論證。系統(tǒng)可行性的研究包括目標(biāo)和方案可行性、技術(shù)的可行性和法律可行性等方面的考慮。
3) 系統(tǒng)開發(fā)的原則:在系統(tǒng)開發(fā)過程中,要遵循老師參與、優(yōu)化創(chuàng)新、實(shí)用高效、處理規(guī)范化的原則。
4) 系統(tǒng)開發(fā)方法的選擇和開發(fā)計(jì)劃的制定:針對已經(jīng)確定的開發(fā)策略選定相應(yīng)的開發(fā)方法,是結(jié)構(gòu)化系統(tǒng)分析和設(shè)計(jì)方法,還是選擇原型法或面向?qū)ο蟮姆椒ā?/p>
2 系統(tǒng)可行性研究
2.1 新聞發(fā)布系統(tǒng)的意義
新聞發(fā)布系統(tǒng)(News Release System or Content Management System)又叫做內(nèi)容管理系統(tǒng),是一個(gè)基于新聞和內(nèi)容管理的全站管理系統(tǒng),新聞發(fā)布系統(tǒng)是基于B/S模式的WEBMIS系統(tǒng),本系統(tǒng)可以將雜亂無章的信息(包括文字、圖片和影音)經(jīng)過組織,合理有序地呈現(xiàn)在大家面前。當(dāng)今社會是一個(gè)信息化的社會,新聞作為信息的一部分有著信息量大,類別繁多,形式多樣的特點(diǎn),新聞發(fā)布系統(tǒng)的概念就此提出。新聞發(fā)布系統(tǒng)的提出使電視不再是唯一的新聞媒體,從此以后網(wǎng)絡(luò)也充當(dāng)了一個(gè)重要的新聞媒介的功能。簡單地說,新聞發(fā)布系統(tǒng)就是充當(dāng)一個(gè)網(wǎng)絡(luò)新聞媒介的功能,主要實(shí)現(xiàn)對新聞的分類、上傳、審核、發(fā)布,模擬了一般新聞媒介的新聞發(fā)布的過程,通過不同權(quán)限的賬號分別實(shí)現(xiàn)以上所說功能,當(dāng)然這些功能也可以是某一個(gè)賬號全部具有。
隨著互連網(wǎng)的進(jìn)一步發(fā)展,網(wǎng)絡(luò)媒體在人們心中的地位進(jìn)一步提高,新聞發(fā)布系統(tǒng)做為網(wǎng)絡(luò)媒體的核心系統(tǒng),其重要性是越來越重要:一方面,它提供一個(gè)新聞管理和發(fā)布的功能;另一方面,現(xiàn)在的新聞發(fā)布要求實(shí)現(xiàn)與普通的用戶實(shí)現(xiàn)交互,用戶可以很方便地參加一些調(diào)查和相關(guān)新聞的評論,這一點(diǎn)也是其他一些媒體現(xiàn)在無法做到的(電視、電臺等),同時(shí),Internet發(fā)展到當(dāng)今,可以說,只要你上Internet,你就會接觸到新聞發(fā)布系統(tǒng),新聞發(fā)布系統(tǒng)的用戶是相當(dāng)驚人的,其重要性是不容置疑的,當(dāng)然這也對新聞發(fā)布系統(tǒng)的開發(fā)提出了更高的要求。
2.2 可行性分析
傳統(tǒng)的網(wǎng)站新聞管理方式有兩種,一是靜態(tài)HTML頁面,更新信息時(shí)需要重新制作頁面然后上傳頁面并修改相應(yīng)鏈接,這種方式因?yàn)樾侍鸵巡欢嘤?。二是基于JSP和腳本語言,將動態(tài)網(wǎng)頁和數(shù)據(jù)庫結(jié)合,通過應(yīng)用程序來處理新聞,這是目前較為流行的做法。人們對最新信息的需求和發(fā)布迫切的需要及時(shí)性,而動態(tài)交互式網(wǎng)頁剛好提供了這些功能,本系統(tǒng)就是一個(gè)能夠在網(wǎng)上實(shí)現(xiàn)新聞的網(wǎng)上多用戶發(fā)布,多欄目管理,實(shí)時(shí)的進(jìn)行行為統(tǒng)計(jì)和記錄的網(wǎng)上交互系統(tǒng)。
新聞發(fā)布系統(tǒng)后臺對新聞作了詳細(xì)的分類,前臺以分類形式顯示新聞的詳細(xì)信息,滿足了人們?yōu)g覽新聞網(wǎng)時(shí)分類查看新聞信息的要求,同時(shí)提供新聞信息查詢功能,方便瀏覽者查找相關(guān)的新聞信息。新聞網(wǎng)后臺則通過對總管理員設(shè)置和管理員添加等模塊對網(wǎng)站管理員進(jìn)行管理,保證了網(wǎng)站的安全性。
3 系統(tǒng)需求分析
當(dāng)決定要開發(fā)一個(gè)信息系統(tǒng)時(shí),首先要對信息系統(tǒng)的需求進(jìn)行分析,需求分析要做的工作是深入描述軟件的功能和性能,確定軟件設(shè)計(jì)的限制和軟件同其他系統(tǒng)元素的接口細(xì)節(jié),定義軟件的其他有效性需求。其實(shí)現(xiàn)步驟主要包括四步,如圖1所示。
抽象出當(dāng)前系統(tǒng)的邏輯模型。在理解當(dāng)前系統(tǒng)“怎么做”的基礎(chǔ)上,抽取其“做什么”的本質(zhì),從而從當(dāng)前系統(tǒng)的物理模型抽象出當(dāng)前系統(tǒng)的邏輯模型。在物理模型中有許多物理因素,隨著分析工作的深入,有些非本質(zhì)的物理因素就成為不必要的負(fù)擔(dān),因而需要對物理模型進(jìn)行分析,區(qū)分出本質(zhì)的物理因素就成為不必要的負(fù)擔(dān),因而需要對物理模型進(jìn)行分析,區(qū)分出本質(zhì)的和非本質(zhì)的困素,去掉那些非本質(zhì)的困素即可獲得反映系統(tǒng)本質(zhì)的邏輯模型。
建立目標(biāo)系統(tǒng)的邏輯模型。分析目標(biāo)系統(tǒng)與當(dāng)前系統(tǒng)邏輯上的差別,明確目標(biāo)系統(tǒng)到底要“做什么”,從而從當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型。
為了對新聞發(fā)布系統(tǒng)做完整的描述,還需要對上面得到的邏輯模型做一些補(bǔ)充.首先采用圖形的方式描述新聞發(fā)布系統(tǒng)的用戶界面,這樣做的目的是保證整個(gè)系統(tǒng)的用戶界面的一致性,同時(shí)也有助于后續(xù)的開發(fā)人員更好地理解系統(tǒng)需要實(shí)現(xiàn)的功能。其次,說明新聞發(fā)布系統(tǒng)的一些特珠性能要求。
通過相關(guān)調(diào)查,要求網(wǎng)站具有以下功能:
1) 通過網(wǎng)絡(luò),展示各行業(yè)新聞及相關(guān)信息。
2) 提供新聞搜索功能。
3) 支持其他網(wǎng)站的友情鏈接。
4) 為后臺管理提供管理入口。
3.1 系統(tǒng)設(shè)計(jì)思想
3.1.1 頁面模塊化
本新聞發(fā)布系統(tǒng)把頁面中的一些常用的部分集成為模塊,如頁面的頭和尾,這樣設(shè)計(jì)新的頁面時(shí)如果有重復(fù)的部分,只需拿現(xiàn)成的模塊來組裝就可以了。
3.1.2 網(wǎng)頁活動配置
形象頁是由一張圖切割而成的,然后在相應(yīng)的位置加上鏈接,要在什么顯示什么,在什么位置進(jìn)行切割,無法形成規(guī)律,所以此頁面的設(shè)計(jì)思想為:利用原有的圖片,在配置是進(jìn)行鏈接地址的位置,即可以對需要進(jìn)行鏈接的圖片指定鏈接的地址。
3.1.3 后臺維護(hù)與前臺顯示模塊分開
本新聞發(fā)布系統(tǒng)把后臺管理員的維護(hù)模塊和前臺用戶瀏覽信息模塊獨(dú)立分開開來。而又統(tǒng)一于同一個(gè)數(shù)據(jù)庫,便于管理員維護(hù)數(shù)據(jù),也便與用戶瀏覽。用戶的權(quán)限的控制又增加了系統(tǒng)的安全性。
3.2 系統(tǒng)功能模塊劃分
前臺客戶界面系統(tǒng)圖如圖2所示。
后臺管理界面的功能模塊圖如圖3所示。
3.3 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)結(jié)構(gòu)設(shè)計(jì)框圖如圖4所示。
3.3.1 數(shù)據(jù)庫模塊結(jié)構(gòu)設(shè)計(jì)
設(shè)計(jì)數(shù)據(jù)庫系統(tǒng)時(shí)應(yīng)該首先充分了解用戶各個(gè)方面的需求,包括現(xiàn)有的以及將來可能增加的需求。數(shù)據(jù)庫設(shè)計(jì)一般包括如下幾個(gè)步驟:
1) 數(shù)據(jù)庫需要分析。
2) 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)。
3) 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)。
4) 數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計(jì)。
數(shù)據(jù)庫需求分析由于本系統(tǒng)面向的對象有兩個(gè),即用戶和管理員,所以數(shù)據(jù)庫需求與分析中就要考慮到兩個(gè)因素。
對于用戶來說,他們所關(guān)心的是新聞的瀏覽,新聞的搜索與點(diǎn)評,同時(shí)還得兼顧欄目的路徑信息,新聞圖片信息。推薦新聞信息,新聞點(diǎn)擊信息和新聞審核信息等。
通過系統(tǒng)的功能分析,針對一般新聞系統(tǒng)用戶的需求,總結(jié)出如下的新聞信息:
1) 每個(gè)欄目對應(yīng)一個(gè)文件夾。
2) 每個(gè)新聞對應(yīng)一個(gè)jsp文件。
3) 每個(gè)新聞只能對應(yīng)一個(gè)欄目。
4) 每個(gè)新聞對應(yīng)chird目錄下一個(gè)發(fā)表的文章(html文件)。
5) 每個(gè)欄目下可以有多個(gè)新聞。
6) 不同欄目的新聞對應(yīng)的關(guān)鍵字可以相同。
7) 每個(gè)新聞必須審核通過后才能對用戶開放。
每個(gè)新聞除包含新聞的基本信息外,還得包含路徑信息,圖片信息,推薦新聞信息,新聞評論信息和新聞點(diǎn)擊信息等。
對于管理員來說,他們所關(guān)心的是如何對欄目和新聞進(jìn)行添加,審核,修改和刪除。不同管理員的權(quán)限不同??梢苑譃槿?,一級為高級管理員,什么操作都可以做,二級為審核管理員,可以對新聞進(jìn)行添加和審核;三級為新聞錄入員,只能對新聞進(jìn)行錄入。通過以上分析,總結(jié)出如下需求分析:
1) 管理員有不同的權(quán)限。
2) 管理員可以對各級欄目進(jìn)行增加,刪改,修改。
3) 管理員可以對新聞進(jìn)行增加,刪改,修改。
4) 管理員可以對新聞評論進(jìn)行增加,刪改,修改。
5) 管理員可以對新聞進(jìn)行審核。
6) 管理員可以對用戶進(jìn)行管理。
通過上述系統(tǒng)功能的分析和需求的分析總結(jié),還有將來系統(tǒng)功能的擴(kuò)展,設(shè)計(jì)如下面所示的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)。
1) 管理員信息,數(shù)據(jù)項(xiàng)包括用戶名,密碼,權(quán)限。
2) 欄目信息,數(shù)據(jù)項(xiàng)包括編號,欄目名稱,欄目路徑, 熱點(diǎn)的坐標(biāo)位置,鏈接地址,二級欄目的圖片等。
3) 新聞信息,數(shù)據(jù)項(xiàng)包括新聞編號,所屬欄目,新聞標(biāo)題,新聞內(nèi)容,新聞圖片信息,新聞審核信息,新聞來源,新聞作者和文件名等。
3.3.2 后臺管理系統(tǒng)
在后臺管理系統(tǒng)中,所有的用戶信息都被存放在book.backuser表中。這些用戶擁有相同的權(quán)限:都可以通過后臺維護(hù)頁面登錄后臺管理界面、都能夠更改已有的頁面菜單層次結(jié)構(gòu)、發(fā)表新聞、更改相關(guān)新聞的評論。下面的內(nèi)容將就該后臺登錄模塊的設(shè)計(jì)內(nèi)容進(jìn)行闡述:
3.3.2.1 模型層實(shí)現(xiàn)
新聞發(fā)布系統(tǒng)使用ParentBean封裝了所有bean對數(shù)據(jù)庫的交互操作,該bean中實(shí)現(xiàn)了獲取數(shù)據(jù)庫連接(采用緩沖池進(jìn)行數(shù)據(jù)庫連接的管理)、釋放連接的操作,同時(shí)還提供增刪改查以及將一條SQL語句作為參數(shù)提交數(shù)據(jù)庫執(zhí)行的基本數(shù)據(jù)庫操作函數(shù)。篇幅所限,本文不就該類的詳細(xì)實(shí)現(xiàn)進(jìn)行闡述,請查閱源文件目錄:<project basedir>/WEB-INF/ classes/com/ideas/bean/ParentBean.java獲取關(guān)于該類的詳細(xì)信息。
后臺登錄模塊所使用的用戶信息的模型層實(shí)現(xiàn)是由UserBean完成的,該類繼承了ParentBean類,實(shí)現(xiàn)了最基本的用戶信息增刪改查的操作。下面是該bean的詳細(xì)實(shí)現(xiàn):
public class userBean extends ParentBean
{
String id = \"-1\";
public void setID(String id)
{this.id = id;}
public Vector getCurPage(int cur,int records)
{return getOnePage(\"SELECT * FROM backuser\",cur,records);}
public String login(String backuser,String pwd)
{String sql = \" select id from backuser where islock='0' and user='\"+backuser+\"' and pwd='\"+pwd+\"'\";
Vector resultSet = getResultSetData(selectRecord(sql));
return (resultSet.get(\"id\"));}
//取得數(shù)據(jù)表中的某一條記錄
3.3.2.2 顯示層實(shí)現(xiàn)
通過在web.xml中的設(shè)置,新聞發(fā)布系統(tǒng)將login.jsp作為默認(rèn)的顯示頁面:
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
下面是login.jsp中的JSP代碼,該段代碼指定LoginServlet作為其控制層實(shí)現(xiàn)代碼。
<form name=\"form1\" method=\"post\" action=\"LoginServlet\">
<table width=\"100%\" border=\"0\" cellspacing=\"3\" cellpadding=\"0\">
<tr>
<td width=\"39%\"> <font color=\"#FFFFFF\">用戶名:</font></td>
<td width=\"61%\" v align=\"middle\" align=\"right\">
<input type=\"text\" name=\"sUserName\" size=\"15\" value=\"\"></td>
</tr>
<tr>
<td width=\"39%\"><font color=\"#FFFFFF\">密碼:</font></td>
<td width=\"61%\" align=\"right\" v align=\"middle\">
<input type=\"password\" name=\"sPassword\" size=\"15\" value=\"\"></td>
</tr>
<tr>
<td width=\"39%\"> </td>
<td width=\"61%\" align=\"right\"><input type=\"submit\" name=\"Submit2\" value=\"確定\"></td>
</tr>
</table>
</form>
3.3.2.3 控制層實(shí)現(xiàn)
在管理員登錄時(shí)需要進(jìn)行身份信息的驗(yàn)證,新聞發(fā)布系統(tǒng)中所采用的方法是利用SQL語句,以用戶ID為關(guān)鍵字從數(shù)據(jù)庫中獲取身份驗(yàn)證信息進(jìn)行驗(yàn)證:
public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {
String name = req.getParameter(\"sUserName\");
String password = req.getParameter(\"sPassword\");
userBean myBean = new userBean();
myBean.getMyConnPool();
String id = myBean.login(name,password);
String go = \"\";
if (!id.equals(\"-1\")) {
HttpSession session = req.getSession(true);
session.setAttribute(\"login\", \"true\");
session.setAttribute(\"user\",name);
go = \"index.jsp\";}
else {
go = \"login.jsp\";}
myBean.releaseMyConnPool();
res.sendRedirect(go);}
在調(diào)用模型層實(shí)現(xiàn)的UserBean.login()方法后,根據(jù)該方法返回的用戶ID信息判定用戶的驗(yàn)證信息是否有效,用戶是否成功登錄并決定跳轉(zhuǎn)到哪一個(gè)頁面。
用戶管理模塊的控制代碼都用Scripts的形式寫在JSP文件,雖然這是一種不規(guī)范的方式,但是在一些簡單的測試環(huán)境中這種做法能夠起到很好的教學(xué)意義。其詳細(xì)的實(shí)現(xiàn)如下所示:
<% //超時(shí)提示
if((String)session.getAttribute(\"login\")==1) {
response.sendRedirect(\"../session.htm\");
}%>
<jsp:useBean id=\"myBean\" scope=\"page\" class=\"com.ideas.bean.userBean\"/>
<%
int intPageSize; //一頁顯示的記錄數(shù)
int intRowCount; //記錄總數(shù)
int intPageCount; //總頁數(shù)
int intPage; //待顯示頁碼
String strPage;
//設(shè)置一頁顯示的記錄數(shù)
intPageSize =Configuration.Number_shown;
//取得待顯示頁碼
strPage = request.getParameter(\"page\");
if(strPage==1){//表明在QueryString中沒有page這一個(gè)參數(shù),此時(shí)顯示第一頁數(shù)據(jù)
intPage = 1;}
else{//將字符串轉(zhuǎn)換成整型
intPage = java.lang.Integer.parseInt(strPage);
if(intPage<1) intP新age = 1;}
int recno=(intPage-1)*intPageSize+1;
//DBConnectionManager connMgr=DBConnectionManager.getInstance();
//Connection con = connMgr.getConnection(Configuration.ConnectionPoolName);
//創(chuàng)建數(shù)據(jù)庫連接
if (!myBean.getMyConnPool()) {
out.println(\"不能獲取數(shù)據(jù)庫連接.\");
return;}
//edit
String id1 = (String)request.getParameter(\"id\");
String type1 = (String)request.getParameter(\"type\");
String user1 = (String)request.getParameter(\"user\");
String pwd1 = (String)request.getParameter(\"pwd\");
String info1 = (String)request.getParameter(\"info\");
String islock1 = (String)request.getParameter(\"islock\");
if(info1==1)info1 = \"\";
info1 = new String(info1.getBytes(\"ISO-8859-1\"),\"GBK\");
if(type1==1)type1 = \"\";
int error = 0;
if(type1.equals(\"1\"))
{
Hashtable hash= new Hashtable();
hash.put(\"user\", user1);
hash.put(\"pwd\", pwd1);
hash.put(\"info\", info1);
error = myBean.add(hash);
}
else if(type1.equals(\"2\"))
{
myBean.setID(id1);
Hashtable hash= new Hashtable();
hash.put(\"user\", user1);
hash.put(\"pwd\", pwd1);
hash.put(\"info\", info1);
hash.put(\"islock\", islock1);
error = myBean.mod(hash);
}
else if(type1.equals(\"3\"))
{
myBean.setID(id1);
myBean.del();
}
//取得當(dāng)前頁的數(shù)據(jù)
Vector vect = myBean.getCurPage(intPage,intPageSize);
//獲取記錄總數(shù)
intRowCount = Integer.parseInt((String)vect.get(0));
//計(jì)算總頁數(shù)
intPageCount = Integer.parseInt((String)vect.get(1));
//調(diào)整待顯示的頁碼
if(intPage>intPageCount) intPage = intPageCount;%>
在開始處,通過從session中獲取login信息來判斷管理用戶的登錄信息是否已經(jīng)過期來實(shí)現(xiàn)一定程度的安全防范措施。
4 小結(jié)
本文提出了一種基于Web的新聞發(fā)布系統(tǒng),該系統(tǒng)的多用戶發(fā)布,多欄目管理,使新聞信息及時(shí)、準(zhǔn)確的得以發(fā)布。利用JSP技術(shù)實(shí)現(xiàn)學(xué)校的新聞能夠及時(shí)的得以發(fā)布是一項(xiàng)很有效方法,這種組建的方式,可以應(yīng)用于網(wǎng)站的其它欄目。又由于JSP編程所用的 Jscript語言較其它語言較簡潔、易操作、功能較強(qiáng)非常適合廣大用戶進(jìn)行網(wǎng)站的開發(fā)。
參考文獻(xiàn):
[1] 劉振巖. JSP工程應(yīng)用與項(xiàng)目實(shí)踐[M]. 北京:電子工業(yè)出版社,2006.
[2] 王輝, 黃紅超. MySQL數(shù)據(jù)庫開發(fā)實(shí)例解析[M]. 北京:清華大學(xué)出版社,2005.
[3] 羅運(yùn)模, 王珊. MySQL數(shù)據(jù)庫系統(tǒng)基礎(chǔ)[M]. 北京:高等教育出版社,2003.
[4] 魏善沛. J2EE網(wǎng)絡(luò)開發(fā)技術(shù)[M]. 人民郵電出版社,2003.
[5] 張海藩. 軟件工程導(dǎo)論[M]. 北京:清華大學(xué)出版社,2003.
[6] 劉曉華. JSP與網(wǎng)頁數(shù)據(jù)庫設(shè)計(jì)[M]. 北京:電子工業(yè)出版社,2002.
[7] 陳孝強(qiáng). J2EE編程基礎(chǔ)與實(shí)例[M]. 北京:清華大學(xué)出版社,2003.
[8] 伯恩斯坦,劉易斯. 數(shù)據(jù)庫系統(tǒng)面向應(yīng)用的方法[M]. 北京:人民郵電出版社,2006.
[9] Liberty J, Hurwitz D. JSP編程[M]. 影印,3版. 南京:東南大學(xué)出版社,2006.
[10] 德特. 數(shù)據(jù)庫系統(tǒng)導(dǎo)論[M]. 北京:中國電力出版社,2005.
[11] Lowy J. Dynamic Website JSP Programming[M]. 影印版,2版. 南京:東南大學(xué)出版社,2006.
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文