本文目錄一覽:
基於JSP、資料庫的畢業論文,題目是設計電子相冊,急!!!!!
使用JSP技術設計電子商務應用系統(2)(1)
關鍵詞:使用JSP技術設計電子商務應用系統,,
p2、 開放的開發過程,開放的原代碼
SUN應用JAVA社團性過程開發JSP技術。自從1995年,SUN已經用這種開放過程方法同國際JAVA組織合作開發和修改了JAVA技術與規範。針對JSP的產品,SUN授權了工具提供商(如Macromedia),結盟公司(如Apache, Netscape),最終用戶,協作商及其他。最近,SUN將最新版本的JSP和JavaTM Servlet(JSP 1.1,JAVA SERVLET 2.2)的原代碼發放給Apache,以求JSP與Apache緊密的相互發展。Apache,SUN和許多其他的公司及個人公開成立一個健壯的諮詢機構以便任何公司和個人都能免費取得信息。(詳見:)
圖1-2 SUN的合作夥伴Apache關於JSP最新內容的網址
而由於APACHE對源代碼採用了OPEN TO PUBLIC的技術戰略, 如果你對研究JSP平台的系統源代碼感興趣, 你甚至可以在INTERNET上下載它們.其網址為:
圖1-3 APACHE的JSP平台: TOMCAT的系統源代碼下載網址
JSP應用程序界面(API)毫無疑問已經取得成功,並將隨JAVA組織不斷開放擴大繼續完善。相反,ASP技術僅依靠微軟本身的推動,其發展是建立在獨佔的,封閉的開發過程基礎之上。
3、 從開發人員的角度來看 :ASP和JSP技術都能使開發者實現通過點擊網頁中的組件製作互動式的,動態的內容和應用程序的WEB站點。ASP僅支持組件對象模型COM,而JSP技術提供的組件都是基於JavabeansTM技術或JSP標籤庫。由此可以看出兩者雖有相同之處,但其區別是很明顯的。
1) JSP標籤可擴充性
儘管ASP和JSP都使用標籤與腳本技術來製作動態WEB網頁,JSP技術能夠使開發者擴展JSP標籤得以應用,JSP開發者能定製標籤庫,所以網頁製作者充分利用與XML兼容的標籤技術強大的功能,大大減少對腳本語言的依賴。由於定製標籤技術,使網頁製作者降低了製作網頁和向多個網頁擴充關鍵功能的複雜程度。
2) JSP跨平台的可重用性
JSP的開發人員在開發過程中一直關注可重用性。JSP組件(企業JavabeansTM,Javabeans,或定製的JSP標籤)都是跨平台可重用的。企業Javabeans組件可以訪問傳統的資料庫,並能以分散式系統模式工作於UNIX和WINDOWS平台。JSP技術的標籤可擴充功能為開發人員提供簡便的,與XML兼容的介面即共享網頁的打包功能使其完全的工業標準化。
這種基於組件的模式很有效提高應用程序的開發效率,因為這種模式能夠使開發人員利用快捷的子組件快速創建模板應用程序,然後再整合一些附加功能以後便可使用。象這樣有效的方法在JSP中無處不在,並可將其打包成一個Javabean或一個工業標準化的Javabean組件。
二、 JAVA的優越性
JSP技術是用JAVA語言作為腳本語言的,而ASP網頁使用微軟的VBScrip或Jscrip。JAVA是成熟的,強大的,易擴充的編程語言,遠優於基於BASIC的腳本語言。如:JAVA的可執行性優於VBScript或Jscript語言。因為它們利用JAVA技術並且都被編譯為JAVA Servlets,JSP網頁為整個伺服器端的JAVA庫單元提供了一個介面來服務於HTTP的應用程序。
JAVA使開發人員的工作在其他方面也變的一樣容易,簡單。例如,當ASP應用程序在WINDOWS NT系統被懷疑可能會崩潰時,JAVA能有效的防止系統的崩潰。JAVA語言通過提供防止內存的泄漏的方法,在內存管理方面也能大顯身手。加之,JSP為應用提供了健壯的意外事件處理機制。
1、 易於維護性
基於JSP技術的應用程序比基於ASP的應用程序易於維護和管理。
腳本語言都能很好服務於小的應用程序,但不能適應大型的,複雜的應用程序。因為,JAVA是結構化的,它比較容易創建和維護龐大的,組件化的應用程序。
JSP突出的組件技術使修改內容而不影響邏輯或修改邏輯而不影響內容變得很容易實現。
企業級的Javabeans結構整合了企業邏輯,例如資料庫的訪問,安全,事務完整性,及獨立性即獨立於應用程序。
因為JSP技術是一種開放的,跨平台的結構,因此,WEB伺服器,平台,及其他的組件能很容易升級或切換,且不會影響JSP基本的應用程序。這一特點使JSP能夠適用現實世界的各種WEB應用程序不斷的變化和發展。
2、企業產品的多樣性
JAVA2平台即企業版(J2EE)是適用於多企業應用程序的JAVA結構,作為J2EE的部分,JSP網頁可訪問所有J2EE的組件,包括Javabeans,企業級Javabeans及JAVA Servlets。JSP網頁都能完全編譯成為Servlets,所以它們都享有靈活性的特點和為伺服器端JAVA應用程序。J2EE平台內容不僅包括管理複雜的企業應用程序而且包括事務管理技術和Pooling資源管理技術。
JSP網頁可以訪問標準的J2EE服務,包括:
* JAVA名稱和目錄界面API
* JDBCTM API(與關聯的資料庫通訊)
* JavaMailTM(支持基於JAVA郵件和消息應用程序的類)
* JAVATM 消息服務
通過J2EE,JSP網頁能夠用許多方式同企業系統交互訪問。J2EE支持兩種CORBA規範的技術:JAVA IDL和RMI-IIOP。在企業級JAVABEANS技術支持下,JSP網頁通過運用高級的,對象映射的方式訪問資料庫。
資料庫論文 急求!!追加1000分
一、三個世界
1、現實世界 人們管理的對象存於現實世界中。現實世界的事物及事物之間存在著聯繫,這種聯繫是客觀存在的,是由事物本身的性質決定的。例如學校的教學系統中有教師、學生、課程,教師為學生授課,學生選修課程並取得成績。
2、概念世界 概念世界是現實世界在人們頭腦中的反映,是對客觀事物及其聯繫的一種抽象描述,從而產生概念模型。概念模型是現實世界到機器世界必然經過的中間層次。涉及到下面幾個術語:
實體:我們把客觀存在並且可以相互區別的事物稱為實體。實體可以是實際事物,也可以是抽象事件。如一個職工、一場比賽等。
實體集:同一類實體的集合稱為實體集。如全體職工。注意區分”型”與”值”的概念。如每個職工是職工實體”型”的一個具體”值”。
屬性:描述實體的特性稱為屬性。如職工的職工號,姓名,性別,出生日期,職稱等。
關鍵字:如果某個屬性或屬性組合的值能唯一地標識出實體集中的每一個實體,可以選作關鍵字。用作標識的關鍵字,也稱為碼。如”職工號”就可作為關鍵字。
聯繫:實體集之間的對應關係稱為聯繫,它反映現實世界事物之間的相互關聯。聯繫分為兩種,一種是實體內部各屬性之間的聯繫。另一種是實體之間的聯繫。
3、機器世界 存入計算機系統里的數據是將概念世界中的事物數據化的結果。為了準確地反映事物本身及事物之間的各種聯繫,資料庫中的數據必須有一定的結構,這種結構用數據模型來表示。數據模型將概念世界中的實體,及實體間的聯繫進一步抽象成便於計算機處理的方式。
數據模型應滿足三方面要求:一是能比較真實地模擬現實世界;二是容易為人所理解;三是便於在計算機上實現。數據結構、數據操作和完整性約束是構成數據模型的三要素。數據模型主要包括網狀模型、層次模型、關係模型等,它是按計算機系統的觀點對數據建模,用於DBMS的實現。
關係資料庫採用關係模型作為數據的組織方式。 關係資料庫因其嚴格的數學理論、使用簡單靈活、數據獨立性強等特點,而被公認為最有前途的一種資料庫管理系統。它的發展十分迅速,目前已成為佔據主導地位的資料庫管理系統。自20世紀80年代以來,作為商品推出的資料庫管理系統幾乎都是關係型的,例如,Oracle,Sybase,Informix,Visual FoxPro等。
網路資料庫也叫Web資料庫。促進Internet發展的因素之一就是Web技術。由靜態網頁技術的HTML到動態網頁技術的CGI、ASP、PHP、JSP等,Web技術經歷了一個重要的變革過程。Web已經不再局限於僅僅由靜態網頁提供信息服務,而改變為動態的網頁,可提供互動式的信息查詢服務,使信息資料庫服務成為了可能。Web資料庫就是將資料庫技術與Web技術融合在一起,使資料庫系統成為Web的重要有機組成部分,從而實現資料庫與網路技術的無縫結合。這一結合不僅把Web與資料庫的所有優勢集合在了一起,而且充分利用了大量已有資料庫的信息資源。圖1-1是Web資料庫的基本結構圖,它由資料庫伺服器(Database Server)、中間件(Middle Ware)、Web伺服器(Web Server)、瀏覽器(Browser)4部分組成。
Web資料庫的基本結構
它的工作過程可簡單地描述成:用戶通過瀏覽器端的操作界面以交互的方式經由Web伺服器來訪問資料庫。用戶向資料庫提交的信息以及資料庫返回給用戶的信息都是以網頁的形式顯示。
1.1.1 Internet技術與相關協議
Internet技術在Web資料庫技術中扮演著重要的角色。Internet(網際網路)專指全球最大的、開放的、由眾多網路相互連接而成的計算機網路,並通過各種協議在計算機網路中傳遞信息。TCP/IP協議是Internet上使用的兩個最基本的協議。因此也可以說Internet是全球範圍的基於分組交換原理和TCP/IP協議的計算機網路。它將信息進行分組後,以數據包為單位進行傳輸。Internet在進行信息傳輸時,主要完成兩項任務。
(1)正確地將源信息文件分割成一個個數據包,並能在目的地將源信息文件的數據包再準確地重組起來。
(2)將數據包準確地送往目的地。
TCP/IP協議的作用就是為了完成上述兩項任務,規範了網路上所有計算機之間數據傳遞的方式與數據格式,提供了數據打包和定址的標準方法。
1.TCP/IP協議
TCP協議(Transmission Control Protocol,傳輸控制協議)規定了分割數據和重組數據所要遵循的規則和要進行的操作。TCP協議能保證數據發送的正確性,如果發現數據有損失,TCP將重新發送數據。
2.IP協議
在Internet上傳送數據往往都是遠距離的,因此在傳輸過程中要通過路由器一站一站的轉接來實現。路由器是一種特殊的計算機,它會檢測數據包的目的地主機地址,然後決定將該數據包送往何處。IP協議(Internet Protocol,網際協議)給Internet中的每一台計算機規定了一個地址,稱為IP地址。IP地址的標準是由4部分組成(例如202.112.203.11),其中前兩部分規定了當前使用網路的管理機構,第3部分規定了當前使用的網路地址,第4部分規定了當前使用的計算機地址。
Internet上提供的主要服務有E-mail、FTP、BBS、Telnet、WWW等。其中WWW(World Wide Web,萬維網)由於其豐富的信息資源而成為Internet最為重要的服務。
3.HTTP協議
HTTP協議(Hypertext Transfer Protocol,超文本傳輸協議)應用在WWW上,其作用是完成客戶端瀏覽器與Web伺服器端之間的HTML數據傳輸。
1.1.2 Web的工作原理與工作步驟
萬維網簡稱為Web。Web可以描述為在Internet上運行的、全球的、交互的、動態的、跨平台的、分散式的、圖形化的超文本信息系統。
1.Web的工作原理
Web是伴隨著Internet技術而產生的。在計算機網路中,對於提供Web服務的計算機稱為Web伺服器。Web採用瀏覽器/伺服器的工作方式。每個Web伺服器上都放置著大量的Web信息。Web信息的基本單位是Web頁(網頁),多個網頁組成了一個Web節點。每個Web節點的起始頁稱為「主頁」,且擁有一個URL地址(統一資源定位地址)。Web節點之間及網頁之間都是以超文本結構(非線性的網狀結構)來進行組織的。
2.Web的工作步驟
Web的工作步驟如下。
(1)用戶打開客戶端計算機中的瀏覽器軟體(例如Internet Explorer)。
(2)用戶輸入要啟動的Web主頁的URL地址,瀏覽器將生成一個HTTP請求。
(3)瀏覽器連接到指定的Web伺服器,並發送HTTP請求。
(4)Web伺服器接到HTTP請求,根據請求的內容不同作相應的處理,再將網頁以HTML文件格式發回給瀏覽器。
(5)瀏覽器將網頁顯示到屏幕上.
圖1-2 Web的工作步驟
1.1.3 WWW世界中的標記語言
1.HTML語言
HTML(Hypertext Markup Language,超文本標記語言)是創建網頁的計算機語言。所謂網頁實際上就是一個HTML文檔。文檔內容由文本和HTML標記組成。HTML文檔的擴展名就是.html或.htm。瀏覽器負責解釋HTML文檔中的標記,並將HTML文檔顯示成網頁。
(1)HTML標記
HTML標記的作用是告訴瀏覽器網頁的結構和格式。每一個標記用尖括弧括起來。大多數標記都有一個開始標記和一個結束標記。標記不分大小寫。多數標記都帶有自己的屬性。例如字體標記FONT有FACE、COLOR、SIZE等屬性:FACE定義字體;COLOR定義字體的顏色;SIZE定義字體的大小。
使用格式:FONT FACE= SONG SIZE=3 COLOR=RED BEIJING /FONT。
網頁中有很多文本鏈接和圖片鏈接。鏈接,又被稱為超鏈接,用於鏈接到WWW萬維網中的其他網頁上。在HTML文檔中表示超鏈接的標記是A,通過屬性HREF指出鏈接的網頁地址URL。
使用格式:A HREF= BEIJING /A。
(2)HTML程序
HTML程序必須以HTML標記開始,以/HTML標記結束。在HTML和/HTML標記之間主要由兩部分組成:文件頭和文件體。文件頭用標記HEAD /HEAD來標識,文件體用標記BODY/BODY來標識。在文件的頭部通常包含整個網頁的一些信息。例如TITLE/TITLE標記是用來說明網頁的名稱;META/META標記是用來說明網頁的其他信息,如設計者姓名和版權信息等。所有在瀏覽器中要顯示的內容稱為網頁的主體,必須放在BODY/BODY標記中。下面給出的是一個空網頁的HTML程序。
HTML
HEAD
TITLE(在此標記中寫網頁的標題)/TITLE
/HEAD
BODY
(在此標記中寫網頁的內容)
/BODY
/HTML
(3)HTML規範
HTML規範又稱為HTML標準,它總在不斷地發展。每一新版本的出現,HTML都會增加新的特性和內容。有關HTML版本的詳細信息請訪問網站。
在不同的瀏覽器中,網頁的顯示效果可能會有所不同。每一個瀏覽器都使用自己獨特的方式解釋HTML文檔中的標記,並且多數瀏覽器不完全支持HTML的所有特性。因為,像Microsoft和Netscape公司在HTML標準上又開發了一些特有的HTML標記和屬性,稱之為HTML的擴展。這些標記和屬性只被他們自己的瀏覽器所識別,不可能被其他公司的瀏覽器識別。如果瀏覽器不能識別HTML文檔中的標記,則會忽略這個標記。
(4)HTML程序的編輯環境與運行環境
HTML文檔是一個普通的文本文件(ASCII),不包含任何與平台、程序有關的信息。因此HTML文檔可以利用任何文本編輯器來方便地生成。要注意的是HTML文檔的擴展名必須是.html或.htm。運行HTML文檔可以在任何瀏覽器下進行,並可在瀏覽器上查看網頁的HTML源代碼。
關於HTML語言中標記的種類與使用方法將會在第5章中更詳細地進行介紹。
2.可擴展標記語言(XML)
HTML是Web上的通用語言,隨著Internet的深入人心,WWW上的Web文件日益複雜化、多樣化,人們開始感到了HTML這種固定格式的標記語言的不足。1996年W3C開始對HTML的後續語言進行研究,並於1998年正式推出了XML(Extensible Markup Language,可擴展標記語言)。在設計網頁時,XML提供了比HTML更靈活的方法。
(1)XML語言的特點
XML是國際組織W3C為適應WWW的應用,將SGML (Standard Generalized Markup Language)標準進行簡化形成的元標記語言。簡單地說,XML是使用標記來描述內容或與內容相關的形式信息的通用語言。一個XML文檔由標記和字元數據組成。
而作為元標記語言,XML不再使標記固定,允許網頁的設計者定義數量不限的標記來描述內容,同時還允許設計者創建自己的使用規則。
(2)XML的DTD
DTD(Document Type Definition,文檔類型定義)是一組應用在XML文檔中的自定義標記語言的技術規範。DTD中定義了標記的含義及關於標記的語法規則。語法規則中確定了在XML文檔中使用哪些標記符,它們應該按什麼次序出現,標記符之間如何 嵌套,哪些標記符有屬性等等。DTD可以包含在它所描述的XML文檔中,但通常它是一份單獨的文檔或者一系列文檔。作為外部文件可通過URL鏈接,被不同的XML文檔 共享。
XML把DTD的定義權開放,不同行業可以根據自己的實際需求定義描述內容的DTD,以適應本行業內部的信息交流和存檔需要。因此,適合於不同行業、不同平台的標記語言大批湧現。
(3)XML的CSS與XSL
強調內容描述與形式描述的分離,一方面可以使XML文件的編寫者更集中精力於數據本身,而不受顯示方式的細節影響;另一方面允許為相同的數據定義不同的顯示方式,從而適合於不同應用、不同媒體,使XML數據得到最大程度的重用。XML文檔數據的顯示形式是通過樣式單定義的。CSS(Cascading Style Sheets)是XML使用的一種標準的級聯樣式單,XSL(Extensible Style Language)則是可擴展的樣式語言。
由於XML允許用戶創建任何所需的標記,而通用瀏覽器卻既無法預期用戶標記的意義,又無法為顯示這些標記而提供規則,因此用戶必須為自己創建的XML文檔編寫樣式單,樣式單可以實現共享。
瀏覽器對一個XML文檔的處理過程是,首先去關聯它所指定的樣式單文件,如果該樣式單是一個XSL文件,則按照規定對XML數據進行轉換然後再顯示,XSL本身也是基於XML語言的,可以將XML轉化為HTML後再顯示。如果該樣式單是一個CSS文件,瀏覽器就會按照樣式單的規定給每個標記賦予一組樣式後再顯示。
1.2 Web資料庫訪問技術
Web資料庫訪問技術通常是通過三層結構來實現的,如圖1-3所示。目前建立與Web資料庫連接訪問的技術方法可歸納為CGI技術,ODBC技術和ASP、JSP、PHP 技術。
Web資料庫訪問的三層結構
1.2.1 CGI技術
CGI(Common Cateway Interface,通用網關界面)是一種Web伺服器上運行的基於Web瀏覽器輸入程序的方法,是最早的訪問資料庫的解決方案。CGI程序可以建立網頁與資料庫之間的連接,將用戶的查詢要求轉換成資料庫的查詢命令,然後將查詢結果通過網頁返回給用戶。一個CGI工作的基本原理如圖1-4所示。
CGI程序需要通過一個介面才能訪問資料庫。這種介面多種多樣,資料庫系統對CGI程序提供了各種資料庫介面如Perl、C/C++、VB等。為了使用各種資料庫系統,CGI程序支持ODBC方式,通過ODBC介面訪問資料庫。
CGI工作流程
1.2.2 ODBC技術
ODBC(Open Database Connectivity,開放資料庫互接)是一種使用SQL的應用程序介面(API)。ODBC最顯著的優點就是它生成的程序與資料庫系統無關,為程序員方便地編寫訪問各種DBMS的資料庫應用程序提供了一個統一介面,使應用程序和資料庫源之間完成數據交換。ODBC的內部結構為4層:應用程序層、驅動程序管理器層、驅動程序層、數據源層。它們之間的關係如圖1-5所示。由於ODBC適用於不同的資料庫產品,因此許多伺服器擴展程序都使用了包含ODBC層的系統結構。
ODBC的內部結構
Web伺服器通過ODBC資料庫驅動程序向資料庫系統發出SQL請求,資料庫系統接收到的是標準SQL查詢語句,並將執行後的查詢結果再通過ODBC傳回Web伺服器,Web伺服器將結果以HTML網頁傳給Web瀏覽器,工作原理如圖1-6所示。
Web伺服器通過ODBC訪問資料庫
由於Java語言所顯示出來的編程優勢贏得了眾多資料庫廠商的支持。在資料庫處理方面,Java提供的JDBC為資料庫開發應用提供了標準的應用程序編程介面。與ODBC類似,JDBC也是一種特殊的API,是用於執行SQL語句的Java應用程序介面。它規定了Java如何與資料庫之間交換數據的方法。採用Java和JDBC編寫的資料庫應用程序具有與平台無關的特性。
1.2.3 ASP、JSP、PHP技術
ASP是Microsoft開發的動態網頁技術,主要應用於Windows NT+IIS或 Windows 9x+PWS平台。確切地說ASP不是一種語言,而是Web伺服器端的開發環境。利用ASP可以產生和運行動態的、交互的、高性能的Web服務應用程序。ASP支持多種腳本語言,除了VBScript和Pscript,也支持Perl語言,並且可以在同一ASP文件中使用多種腳本語言以發揮各種腳本語言的最大優勢。但ASP默認只支持VBScript和Pscript,若要使用其他腳本語言,必須安裝相應的腳本引擎。ASP支持在伺服器端調用ActiveX組件ADO對象實現對資料庫的操作。在具體的應用中,若腳本語言中有訪問資料庫的請求,可通過ODBC與後台資料庫相連,並通過ADO執行訪問庫的操作。關於ASP的編程技術將會在第7章中詳細介紹。
JSP是Sun公司推出的新一代Web開發技術。作為Java家族的一員,幾乎可以運行在所有的操作系統平台和Web伺服器上,因此JSP的運行平台更為廣泛。目前JSP支持的腳本語言只有Java。JSP使用JDBC實現對資料庫的訪問。目標資料庫必須有一個JDBC的驅動程序,即一個從資料庫到Java的介面,該介面提供了標準的方法使Java應用程序能夠連接到資料庫並執行對資料庫的操作。JDBC不需要在伺服器上創建數據源,通過JDBC、JSP就可以實現SQL語句的執行。
PHP是Rasmus Lerdorf推出的一種跨平台的嵌入式腳本語言,可以在Windows、UNIX、Linux等流行的操作系統和IIS、Apache、Netscape等Web伺服器上運行,用戶更換平台時,無需變換PHP代碼。PHP是通過Internet合作開發的開放源代碼軟體,它借用了C、Java、Perl語言的語法並結合PHP自身的特性,能夠快速寫出動態生成頁面。PHP可以通過ODBC訪問各種資料庫,但主要通過函數直接訪問資料庫。PHP支持目前絕大多數的資料庫,提供許多與各類資料庫直接互連的函數,包括Sybase、Oracle、SQL Server等,其中與SQL Server資料庫互連是最佳組合。
1.3 網路資料庫應用系統的層次體系
當前,Internet/Intranet技術發展異常迅速,越來越多的資料庫應用軟體運行在Internet/Intranet環境下。在此之前,資料庫應用系統的發展經歷了單機結構、集中式結構、客戶機/伺服器(C/S)結構之後,隨著Internet的普及,又出現了瀏覽器/伺服器(B/S)結構與多層結構。在構造一個應用系統時,首先考慮的是系統的體系結構,採用哪種結構取決於系統的網路環境、應用需求等因素。
1.3.1 客戶機/伺服器結構
1.二層C/S結構
二層C/S結構是當前非常流行的資料庫系統結構,在這種結構中,客戶機提出請求,伺服器對客戶機的服務請求做出回答。它把界面和數據處理操作分開在前端(客戶端)和後端(伺服器端),這個主要特點使得C/S系統的工作速度主要取決於進行大量數據操作的伺服器,而不是前端的硬體設備;同時也大大降低了對網路傳輸速度的要求,因為只須客戶端把服務請求發送給資料庫伺服器,資料庫伺服器只把服務結果傳回前端,如圖1-7所示。
在設計時,對數據可能有如下不同的處理形式。
(1)在處理時,客戶機先向伺服器索取數據,然後釋放資料庫,即客戶機發出的是文件請求,在客戶機端處理數據,最後將結果送回伺服器。這種處理方式的缺點很明顯:所有的應用處理都在客戶端完成,這就要求客戶端的計算機必須有足夠的能力,以便執行需要的任何程序。更為糟糕的是,由於所有的處理均在客戶端完成,每次運行時都要將文件整體傳送到客戶端,然後才能執行。如:Student表中有30 000條記錄,客戶端發出命令:
Select * From Student Where Sno=’200101′
這條命令將要求伺服器將Student表中的所有記錄傳送到客戶端,然後在客戶端執行查詢,結果只用到一條記錄;如果查詢的記錄不存在,網路傳輸的數據實際上是無 用的。如此大的數據傳輸量是不可想像的。因此,人們提出了在伺服器中能夠執行部分代碼的客戶機/伺服器結構。
(2)在處理時,客戶機接受用戶要求,並發給伺服器;在伺服器端處理用戶要求,最後將結果傳回客戶機顯示或列印。這種處理方式網路通信量較小。客戶機向伺服器發出的是處理請求,而不是文件請求,處理請求中的代碼在伺服器端執行後向客戶機傳送處理後的結果。
這樣,為了特定任務,客戶機上的程序和伺服器上的程序協同工作:客戶機端的代碼用於完成用戶的輸入輸出及數據的檢查,而伺服器端的代碼完成對資料庫的操作。
客戶機/伺服器結構的另一個主要特點在於軟體、硬體平台的無關性。資料庫伺服器上的資料庫管理系統集中負責管理數據,它向客戶端提供一個開放的使用環境,客戶端通過資料庫介面,如ODBC(開放資料庫連接)和SQL語言訪問資料庫,也就是說,不管客戶端採用什麼樣的硬體和軟體,它只要能夠通過網路和資料庫介面程序連接到伺服器,就可對資料庫進行訪問。
在客戶機/伺服器結構中,常把客戶機稱為前台,而把伺服器端稱為後台。前台應用程序的功能包括用戶界面、接收用戶數據、處理應用邏輯、向後台發出請求、同時接收後台返回的結果,最後再將返回的結果按一定的格式或方式顯示給用戶。而後台伺服器則負責共享外部設備、存取共享數據、響應前台客戶端的請求並回送結果等工作。前台的應用程序和數據一般是用戶專用的,而後台的數據和代碼是所有用戶可以共享的。
由於資料庫伺服器不僅要管理共享數據,保證數據的完整性,還要執行一部分代碼,完成客戶端的一些處理請求,所以對用於伺服器的計算機提出較高的要求。最好要採用一台專用的伺服器,有較快的處理速度,有大容量的硬碟和內存,支持磁帶等大容量的存儲設備。
上面講的客戶機/伺服器結構將應用分在了客戶機、伺服器兩級,稱其為兩層客戶機/ 伺服器結構。總之,兩層C/S結構的基本工作方式是客戶程序向資料庫伺服器發送SQL請求,伺服器返回數據或結果。
這種C/S結構有兩種實現方式,一種是客戶來完成表示部分和應用邏輯部分,而伺服器完成數據訪問部分,這種情況是以客戶為中心的,適用於應用相對簡單、數據訪問量不是很大的情況。另一種是以伺服器為中心的,把一些重要的應用邏輯部分放到伺服器上,這樣可充分利用伺服器的計算能力,減少網路上需要傳送的數據。通常以存儲過程和觸發器的形式出現,但存儲過程都依賴於特定資料庫,不同資料庫之間很難移植,而三層C/S結構可以很好地解決這個問題。
注意:觸發器(trigger)是資料庫系統中,一個在插入、刪除、修改操作之後運行的記錄級事件代碼。不同的事件可以對應不同的動作。通常有3種類型的觸發器:INSERT觸發器、DELETE觸發器和UPDATE觸發器。
2.三層C/S結構
由於兩層結構的客戶機/伺服器系統本身固有的缺陷,使得它不能應用於一些大型、結構較為複雜的系統中,故出現了3層結構的客戶機/伺服器系統,將兩層結構中伺服器部分和客戶端部分的應用單獨劃分出來,即採用「客戶機—應用伺服器—資料庫伺服器」結構(如圖1-8所示)。典型的資料庫應用可分為三部分:表示部分、應用邏輯(商業邏輯)部分和數據訪問部分,三層結構便是對應於這三部分。
圖1-8 三層C/S結構
其中,應用伺服器和資料庫伺服器可位於同一主機,也可位於不同主機。客戶機是應用的用戶介面部分,負責用戶與應用程序的交互,運行在客戶機端的軟體也稱為表示層軟體。應用伺服器存放業務邏輯層(也稱為功能層)軟體,是應用邏輯處理的核心,實現具體業務。它能響應客戶機請求,完成業務處理或複雜計算。若有資料庫訪問任務時,應用伺服器層可根據客戶機的要求向資料庫伺服器發送SQL指令。應用邏輯變得複雜或增加新的應用時,可增加新的應用伺服器。資料庫伺服器便是用來執行功能層送來的SQL指令,完成數據的存儲、訪問和完整性約束等。操作完成後再通過應用伺服器向客戶機返回操作結果。
1.3.2 瀏覽器/伺服器結構
隨著Internet技術和Web技術的廣泛應用,C/S結構已無法滿足人們的需要。因為在典型C/S體系中,通常為客戶安裝前端應用程序的做法已不再現實,並且限制客戶端工作環境只能基於Windows、Macintosh或UNIX等操作系統也不切實際。於是基於瀏覽器/伺服器結構(Browser/Server)的系統應運而生。
採用B/S結構後,在客戶端只需安裝一個通用的瀏覽器即可,不再受具體操作系統和硬體的制約,實現了跨平台的應用。
基於B/S結構的典型應用通常採用三層結構:「瀏覽器—Web伺服器—資料庫伺服器」,B/S模式的工作原理是:通過瀏覽器以超文本的形式向Web伺服器提出訪問資料庫的請求,Web伺服器接受客戶請求後,激活對應的CGI程序將超文本HTML語言轉化為SQL語法,將這個請求交給資料庫,資料庫伺服器得到請求後,進行數據處理,然後將處理結果集返回給CGI程序。CGI再將結果轉化為HTML,並由Web伺服器轉發給請求方的瀏覽器,如圖1-9所示。
圖1-9 B/S工作原理
在B/S模式中,客戶端的標準配置是瀏覽器,如IE;業務功能處理由獨立的應用伺服器處理,Web伺服器成為應用處理的標準配置;數據處理仍然由資料庫伺服器處理。
從本質上講,B/S結構與傳統的C/S結構都是以同一種請求和應答方式來執行應用的,區別主要在於:C/S是一種兩層或三層結構模式,其客戶端集中了大量應用軟體,而B/S是一種基於超鏈接(HyperLink)、HTML、Java的三級或多級C/S結構,客戶端僅需單一的瀏覽器軟體,是一種全新的體系結構,解決了跨平台問題。到目前,這兩種結構在不同方面都有著廣泛的應用。雖然C/S結構在Internet環境下明顯不如B/S結構具有優勢,但它在區域網環境下仍具有優勢。
1.3.3 Internet/Intranet信息系統的多層體系結構
多層結構應用軟體與傳統的兩層結構應用軟體相比,有可伸縮性好、可管理性強、安全性高、軟體重用性好等諸多優點,如何在Internet/Intranet環境下構建應用軟體體系結構就成為一個非常重要的問題,也是現今軟體體系研究的一個新熱點。
目前各種技術層出不窮,如最初的靜態HTML頁面、簡單的CGI網關程序、Java Applet程序,現在的ASP等Web資料庫技術,還有動態的Java在線遊戲及PHP技術等。
實際上,多層的概念是由Sun公司提出來的。Sun公司提出的多層應用體系包括4層:客戶層、頂端Web服務層、應用服務層和資料庫層。其中頂端Web服務層是Sun公司多層體系結構中非常重要的一層,它主要起代理和緩存的作用。頂端Web伺服器的作用是緩存本地各客戶機經常使用的Java Applet程序和靜態數據,通常被放置在客戶機所在的區域網內,起到一個Java Applet主機(向Web瀏覽器傳送Java Applet程序的計算機)和訪問其他服務的代理作用。與普通代理伺服器的作用相同。構建多層結構應用軟體時,選用Java平台是一個很好的選擇,因為它跨越各應用平台。總之,在Java平台上構建多層應用軟體體系代表著今後Internet/Intranet應用的趨勢。
求:用JSP寫的圖書管理系統的畢業論文
1 前言 4
1.1 目的 4
1.2 範圍 4
1.3 有關本系統中的定義 4
2 資料引用 4
3 設計思路 4
3.1 數據層設計 5
user_book表的觸發器 5
用戶續借圖書的存儲過程 6
到期催還表的視圖 7
3.2 數據鏈接層設計 8
UserBook Entity Bean設計 9
UserConsumer Entity Bean設計 10
UserLogBook Entity Bean設計 11
3.3 數據邏輯層設計 12
TheBook Session Bean設計 13
TheUser Session Bean設計 14
TheLog Session Bean設計 15
3.4 網路應用層設計 15
CheckValue bean 16
EnCode bean 16
JDBCBean bean 16
Rank bean 16
SetUp bean 16
SplitPage bean 17
UserLogin bean 17
SearchBook bean 17
SearchDeadline bean 17
ValidateIMG servlet 17
GetDelete servlet servlet 17
GetBookSubmit servlet 18
GetUserSubmit servlet 18
GetRenewBook servlet 18
GetBorrowBook servlet 18
GetReturnBook servlet 18
4 程序架構 18
4.1 程序組織結構 18
4.2 功能許可權劃分 20
4.3 WEB程序/頁面設計 21
4.4 本系統實現的功能 22
5 任務分工 22
1 前言
1.1 目的
本文檔詳細描述了圖書管理系統的設計,主要是為開發人員提供,使其對本項目的構建和維護有深入的了解。
1.2 範圍
本文檔的描述只針對圖書管理系統的1.0版本。
1.3 有關本系統中的定義
以下是本說明書中用到的專門術語的定義和外文首字母組詞的原片語:
術語或縮寫 定義與描述
booksManager 本系統的名稱
Reader 系統許可權:普通讀者
BookAdmin 系統許可權:圖書管理員
UserAdmin 系統許可權:用戶管理員
SuperAdmin 系統許可權:超級管理員(系統管理員)
Undergraduate 系統用戶角色:本科生
Graduate 系統用戶角色:研究生
Teacher 系統用戶角色:教師
2 資料引用
清華大學《應用軟體平台與核心技術》講義 顧明
清華大學《應用軟體平台與核心技術》助教文檔 張偉業、魏嵐、陳勇、林彩榮
《精通EJB(第二版)》
《J2EE應用與BEA Web Logic Server》,刑國慶等譯,電子工業出版社 2002.4
《設計模式——可復用面向對象軟體的基礎》,Erich Gamma等,機械工業出版社
3 設計思路
本系統嚴格按照4層結構設計,分為數據層(SQL server),數據鏈接層(entity bean),數據邏輯層(session bean),網路應用層(java bean, java servlet, java serverpage)。
四層之間完全獨立,可以部署在四台伺服器上運行,體現了分散式應用的思想。
數據層的功能嚴格來說是實現基本的數據存儲(邏輯處理功能應該全部交給CMP管理),但因為學習原因,在資料庫中也用到了一些邏輯處理,如使用了存儲過程+系統級臨時表處理讀者續借圖書的功能、使用觸發器防止未還書的用戶和未歸還的圖書被註銷以及使用視圖檢測借書記錄實現到期催還功能。
數據鏈接層實現了和資料庫的連接,作用在於屏蔽資料庫和平台之間的差異,做到底層無關性。本層利用了模糊查找、多表映射、Relationship等技術,通過find,select方法數據的查找功能,拋出聚集對象或遠程介面對象給下一層。
數據邏輯層實現了對數據的邏輯處理,例如將遠程介面對象轉化為值對象、將聚集對象轉化為值對象向量、利用日期類完成查找兩個特定日期之間的記錄等相對複雜的計算。
網路應用層完成頁面跳轉和頁面顯示等應用功能,還有一些附加功能如:圖片驗證,登錄驗證,等級控制,代碼過濾,分頁控制,輸入值檢測、借書日誌列印、系統運行日誌記錄以及系統設置等。(使用了JDBC實現存儲過程和模糊查找圖書的功能)
3.1 數據層設計
資料庫表
表名 功能描述
user_consumer 記錄了用戶的所有信息
user_book 記錄了圖書的所有信息
user_logBook 記錄了用戶使用本系統的信息,保留了所有的借書記錄,可作為系統日誌和報表資料
user_book表的觸發器
用到的觸發器之一,作用:如果要註銷的圖書被外借沒有歸還,則回滾此刪除操作。
CREATE TRIGGER bookhavelog ON dbo.user_book
FOR DELETE
AS
declare @bookISBN varchar(50)
select @bookISBN=book_ISBN from deleted
if exists(select * from user_logBook where logb_book_ISBN=@bookISBN and
logb_backdate is null)
begin
rollback
return
end
用戶續借圖書的存儲過程
利用存儲過程實現用戶續借圖書的邏輯操作,根據用戶的當前信息判斷其是否有續借的許可權,並把處理結果輸出到臨時表中去。
CREATE PROCEDURE user_renew_book @xxxparm int AS
CREATE TABLE ##temp(statement varchar(50))
DECLARE @username varchar(50)
SET @username=(select logb_cons_username from user_logBook where ID=@xxxparm)
IF @username is null
BEGIN
INSERT INTO ##temp VALUES (‘The ID is not EXIST’)
RETURN
END
DECLARE @timelimit int
SET @timelimit=(select logb_timelimit from user_logBook where ID=@xxxparm)
DECLARE @renewday int
SET @renewday=(select cons_maxday from user_consumer where cons_username=@username)
DECLARE @maxrenew int
SET @maxrenew=(select cons_maxrenew from user_consumer where cons_username=@username)
IF (@renewday*@maxrenew)=@timelimit
BEGIN
update user_logBook set logb_timelimit=logb_timelimit+@renewday where ID=@xxxparm
–update user_consumer set cons_maxrenews=cons_maxrenews-1 where cons_username=@username
INSERT INTO ##temp VALUES (‘renew successful’)
RETURN
END
ELSE
BEGIN
INSERT INTO ##temp VALUES (‘You are not allowed to renew the book’)
RETURN
END
GO
到期催還表的視圖
利用DATEDIFF,DATEADD,CAST,GETDATE等函數從借書記錄表中計算出到期的記錄,然後根據此記錄找出相應的讀者信息,在網頁上以email形式催還。
CREATE VIEW dbo.deadline
AS
SELECT TOP 100 PERCENT dbo.user_logBook.logb_cons_username,
dbo.user_logBook.logb_outdate, DATEADD([day], dbo.user_logBook.logb_timelimit,
CAST(dbo.user_logBook.logb_outdate AS datetime)) AS deadline_date, GETDATE()
AS now_date, dbo.user_consumer.cons_name, dbo.user_consumer.cons_kind,
dbo.user_consumer.cons_rank, dbo.user_consumer.cons_email,
dbo.user_consumer.cons_maxrenew, dbo.user_consumer.cons_maxbook,
dbo.user_logBook.logb_book_ISBN, dbo.user_book.book_name,
dbo.user_book.book_kind, dbo.user_book.book_storage, dbo.user_book.book_rank,
dbo.user_logBook.logb_timelimit
FROM dbo.user_logBook INNER JOIN
dbo.user_consumer ON
dbo.user_logBook.logb_cons_username = dbo.user_consumer.cons_username INNER
JOIN
dbo.user_book ON
dbo.user_logBook.logb_book_ISBN = dbo.user_book.book_ISBN
WHERE (DATEDIFF([day], DATEADD([day], dbo.user_logBook.logb_timelimit,
CAST(dbo.user_logBook.logb_outdate AS datetime)), GETDATE()) = 0) AND
(dbo.user_logBook.logb_backdate IS NULL)
ORDER BY dbo.user_logBook.logb_cons_username DESC
3.2 數據鏈接層設計
entity bean
UserBook Entity Bean設計
userbook remotehome介面
方法 描述
findAllBook 得到所有的圖書信息
findByISBN 通過圖書的書號得到圖書的信息
findSearcher 利用關鍵字模糊查找圖書信息
selectUserByBookISBN
(userbook remote) 利用select方法實現多表相關的查找
findSearcher實現模糊查找的代碼:
select object(p) from UserBook as p where p.bookName like concat(concat(‘%’,?1),’%’) or p.bookAuthor like ?1 or p.bookKind like ?1 or p.bookPublish like ?1 or p.bookAbstract like ?1 or p.bookISBN like concat(concat(‘%’,?1),’%’) or p.bookRemark like ?1
UserConsumer Entity Bean設計
UserConsumer remotehome介面
方法 描述
findAllUser 查找所有的用戶信息
findByUsername 通過用戶名查找用戶信息
findSearcher 利用關鍵字模糊查找用戶信息
selectBookByUsername
(userconsumer remote) 利用select方法實現多表相關的查找
findSearcher實現模糊查找的代碼:
select object(p) from UserConsumer as p where p.consUsername like concat(concat(‘%’,?1),’%’) or p.consSerial like ?1 or p.consName like concat(concat(‘%’,?1),’%’) or p.consRemark like ?1 or p.consEmail like ?1
UserLogBook Entity Bean設計
UserLogBook remotehome介面
方法 描述
findallbybookISBN 查找此書所有的借閱記錄
findbybookISBN 查找此書當前的借出記錄
findallbyusername 查找此用戶所有的借閱記錄
findbyusername 查找此用戶當前的借出書記錄
findbacklog 得到所有已經歸還圖書的借書記錄
findoutlog 得到所有尚未歸還圖書的借書記錄
findbyID 通過記錄流水號查找借書記錄
findlogbyday 查找某一日期的借書記錄
(模糊匹配,例如提交「2004-5」可得到最終記錄時間——借閱或歸還在2004年5月份的所有借書記錄)
findallog 得到所有的借書記錄
FindLogByDay通過模糊匹配得到一組最終記錄時間的代碼:
select object(p) from UserLogBook as p where ( p.logbBackdate is null and p.logbOutdate like concat(concat(‘%’,?1),’%’) ) or ( p.logbBackdate is not null and p.logbBackdate like concat(concat(‘%’,?1),’%’) )
3.3 數據邏輯層設計
session bean
TheBook Session Bean設計
TheBook bean
實現圖書的增刪改查以及模糊搜索、通過書查讀者等功能
方法內部實現所有的邏輯處理和轉化,返回到遠程介面值對象或值對象向量
TheUser Session Bean設計
TheUser bean
實現用戶(讀者)的增刪改查以及模糊搜索、通過讀者查書等功能
方法內部實現所有的邏輯處理和轉化,返回到遠程介面值對象或值對象向量
TheLog Session Bean設計
TheLog bean
主要實現對日誌(借書記錄)的各項操作,提供多種獲得日誌的方法(按讀者、按圖書、按日期、按借還狀態等),方法內部實現所有的邏輯處理和轉化,返回到遠程介面值對象或值對象向量,另外還有如下方法:
方法 功能
public boolean userBorrowBook(String username, String bookISBN) 以一個事務封裝讀者借書的所有邏輯操作,借書成功返回真值,無法借書返回假值,調用enCode bean對中文進行轉碼
public boolean userReturnBook(String logbid) 以一個事務封裝讀者還書的所有邏輯操作,即實現使一筆借書記錄銷賬的功能,調用enCode bean對中文進行轉碼
public Vector showLogBetweenDays(String dayBegin, String dayEnd) 返回兩個日期之間的所有日誌,主要利用Calendar類實現
3.4 網路應用層設計
本層本著面向對象思想的封裝性、數據模糊性、可重用性等原則設計。
本著系統運行錯誤在系統中列印(System.out.println)、用戶輸入和誤操作錯誤導向友好的錯誤處理頁並給出友好的提示的錯誤處理原則。
每次對會話bean的調用寫入系統運行日誌文件,默認路徑是C:\\booksManagerLog.dat。
CheckValue bean
封裝多個靜態方法。
可以用於檢測某表中某個欄位是否已經存在某個值(可用於檢測重名用戶、重號圖書)、檢測用戶名合法性、檢測密碼合法性、檢測年齡合法性、檢測電子郵件合法性、檢測數字合法性、檢測日期合法性等。
EnCode bean
封裝編碼轉碼工作:
html顯示轉碼,例如:將轉為,將轉為rt;,將資料庫中的換行轉為html中的換行等等,這樣可以屏蔽用戶提交文本中的可執行代碼。
可重載的中文轉碼。
密碼的加密和解密編碼。
JDBCBean bean
封裝所有的資料庫操作。包括一個帶結果集返回的SQL執行方法和一個不帶結果集返回的SQL執行方法。
Rank bean
封裝4種許可權(普通讀者、用戶管理員、圖書管理員、系統管理員)的頁面訪問,相當於頁面加鎖功能。
SetUp bean
public static String title=”SuperLibrary”;//系統名稱
public static String dbS=”booksManagerDS”;//資料庫的JNDI名
public static String errorPage=”dealError.jsp?theError=”;//友好的錯誤處理頁,用get方法傳遞出錯原因
public static String homePage=”default.jsp”;//默認首頁
//許可權————————————————————————-
public static String Reader=”Reader”;//讀者
public static String UserAdmin=”UserAdmin”;//用戶管理員
public static String BookAdmin=”BookAdmin”;//圖書管理員
public static String SuperAdmin=”SuperAdmin”;//系統管理員
//等級————————————————————————-
public static String Undergraduate=”Undergraduate”;//本科生
public static int UndergraduateRenew=1;//本科生可續借的次數
public static int UndergraduateMaxday=30;//本科生一次可借的天數
public static String Graduate=”Graduate”;//研究生
public static int GraduateRenew=2;//研究生可續借的次數
public static int GraduateMaxday=45;//研究生一次可借的天數
public static String Teacher=”Teacher”;//教師
public static int TeacherRenew=3;//教師可續借的次數
public static int TeacherMaxday=60;//教師一次可借的天數
//—————————————————————————-
public static int rsPerPage=5;//每頁顯示記錄的數量
public static int minBooks=4;//系統默認的最小借書數
SplitPage bean
將數據記錄分頁的邏輯實現和頁面顯示(最簡,可在外部由樣式表美化)封裝在一個bean中,重用時實際只需要傳遞一個記錄集數量的為參數即可,可重用。一般作為session級java bean在頁面中被調用,在會話中保存用戶對此頁面的訪問狀態,在會話結束之前始終記憶用戶訪問此頁對應的頁碼。
UserLogin bean
將用戶登錄的邏輯實現和頁面顯示(最簡,可在外部由樣式表美化)封裝在一個bean中,包括對用戶各種登錄情況的處理,可重用。
SearchBook bean
利用JDBC實現模糊查找和按指定類別精確查找圖書的功能。
SearchDeadline bean
利用JDBC調用視圖實現到期圖書的催還功能。
ValidateIMG servlet
動態生成含有隨機驗證碼的圖片,在生成圖片的同時將驗證碼寫入session中,與用戶的登錄輸入比較。可有效的防止機器人登錄。
GetDelete servlet servlet
處理圖書、用戶、日誌的註銷操作,根據返回值進行相應頁面的跳轉。
GetBookSubmit servlet
處理圖書的入庫和圖書信息的修改,根據返回值進行相應頁面的跳轉。
GetUserSubmit servlet
處理用戶的註冊和用戶信息的修改,根據返回值進行相應頁面的跳轉。
GetRenewBook servlet
處理用戶續借圖書的請求(JDBC調用存儲過程實現),從系統臨時表中讀取狀態值,根據狀態值進行相應頁面的跳轉。
GetBorrowBook servlet
處理用戶的借書請求,將用戶借書限額已滿、庫存為零等錯誤導向友好的錯誤頁,如果借書成功則跳轉到圖書信息頁面,並給與相應的提示。
GetReturnBook servlet
處理用戶的還書請求,如果還書成功則跳轉到用戶的借書記錄頁面,並給與相應的提示。
4 程序架構
4.1 程序組織結構
說明:圖書搜索和用戶登錄看作系統外部功能,通過JDBC直接調用資料庫,其中用戶登錄模塊封裝在一個java bean中,可重用。另外,用戶續借圖書是通過存儲過程實現,從而繞過了使用CMP技術管理事務的實體bean。
本系統其餘程序的組織結構嚴格按照下圖實現:
程序組織結構圖
4.2 功能許可權劃分
站點頁面地圖
許可權名稱 系統定義字元 許可權 可訪問頁面
普通讀者 Reader 查看自己的信息(還書、續借);
修改自己的信息;
查看圖書(借書); userModify
userView
booklist
圖書管理員 BookAdmin 擁有普通讀者的許可權;
圖書的增刪改查;
到期催還; userModify
userView
booklist
bookAdder
bookModify
deadline
用戶管理員 UserAdmin 擁有普通讀者的許可權;
用戶的增刪改查; userModify
userView
booklist
userRegister
userModify
userList
系統管理員 SuperAdmin 擁有圖書管理員和用戶管理員的許可權;
查看系統日誌;
刪除系統日誌;
系統設置; 包括setupSYS.jsp(系統設置,利用application級java bean控制整個應用程序)在內的所有頁面
4.3 WEB程序/頁面設計
利用input style=”ime-mode:disabled”代碼關閉客戶端的輸入法,實現用戶名、密碼不能出現中文的問題。
利用onfocus=this.select() onmouseover=this.focus()代碼使文本框自動吸附獲得焦點,方便用戶輸入。
利用WMODE=”transparent”參數使flash的背景透明,更好的融入網頁。
在每頁中,利用代碼:
IFRAME frameBorder=0 height=88 marginHeight=0 marginWidth=0 scrolling=no src=”../iframe/top.htm” width=755 BORDERCOLOR=”#000000″/IFRAME
IFRAME frameBorder=0 height=68 marginHeight=0 marginWidth=0 scrolling=no src=”../iframe/below.htm” width=755 BORDERCOLOR=”#000000″/IFRAME
嵌入上下導航條,使網站導航明確,方便用戶瀏覽。
在網頁頭部加入代碼:
meta HTTP-EQUIV=”pragma” CONTENT=”no-cache”
meta HTTP-EQUIV=”expires” CONTENT=”0″
使客戶端不緩存網頁,保證了客戶每次瀏覽該頁都從伺服器獲得最新的版本,以求正確顯示。
提供智能搜索(獲得儘可能多的匹配)和精確搜索(獲得儘可能精確的匹配)圖書,伺服器端編程都採用模糊查找的方式。
在客戶端用javascript對錶單提交進行第一次驗碼,通過後提交到伺服器端,再進行第二次驗碼,驗碼包括:用戶名是否重複、年齡是不是合適的數字,兩次密碼輸入的是否一致、電子郵件是否合法、密碼是否太短、用戶名是否太短、用戶名密碼是否為空等等。
利用隨機生成JPG圖片驗證碼的方法,防止機器人登錄。
在頁面中使用session級java bean實現分頁,在會話中保存用戶對此頁面的訪問狀態,在會話結束之前始終記憶用戶訪問此頁對應的頁碼。
在頁面中使用application級java bean實現安全的系統設置,當伺服器啟動後,即可對系統運行參數進行應用程序級的設置,只要伺服器不關閉,此設置始終有效且作用於所有用戶,如果設置不慎造成系統錯誤或想恢復系統默認設置,則只需重新啟動伺服器即可。
在對會話bean的調用包ejbClient中,創建系統運行日誌,通過包中的writeF類寫入web伺服器的C:\\booksManagerLog.dat中,可做查詢用。
4.4 本系統實現的功能
確定圖書的基本信息,有書名、作者、出版日期、當前借閱狀態等屬性
系統的使用者包括讀者、圖書管理員、用戶管理員、系統管理員四種
讀者可以查詢圖書;圖書管理員可以完成圖書管理、借閱管理;讀者管理員可以完成讀者管理的功能;系統管理員可以使用系統的所有功能
圖書管理:新書登記,圖書查詢,圖書註銷;
借閱管理:借書,還書,查詢到期讀者
讀者管理:增加讀者、刪除讀者、查詢讀者、讀者類別管理(設置研究生,本科生,教師的可借冊數,可借天數,可續借次數等)
系統管理:系統管理員使用,包括用戶許可權管理(增加用戶,刪除用戶,密碼修改等),系統借書日誌,系統運行日誌,系統設置等功能
頁面輸入有驗碼,密碼存取有加密
圖書到期催還
體現分層設計思想,使用MVC架構
實現了多個Beans,Bean之間實現了對應的關係
使用了EJB QL,事務控制等
使用了jsp-sessionBean-entityBean-資料庫模式
資料庫使用了觸發器和存儲過程等一些高級技術
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/288904.html