摘 要:采用jsp/Servlet/JavaBean編程技術和SQL server數(shù)據(jù)庫,進行學生成績管理系統(tǒng)的設計和實現(xiàn)。該系統(tǒng)能夠實現(xiàn)學生信息管理、課程信息管理、學生成績信息管理、學生查詢成績等功能。這個系統(tǒng)是為了軟件專業(yè)學生在學習Java Web軟件項目而構建的教學案例。
關鍵詞:MVC;SQL Server;學生成績管理
0 引言
近年來隨著國家對于高職高專院校政策的大幅轉變,對于高職高專院校畢業(yè)生就業(yè)也提出了更多的機遇和挑戰(zhàn)。畢業(yè)生能否尋得好的工作,能否順利與企業(yè)需求接軌,將成為對高職高專院校進行評價時越來越重要的評價標準。
軟件專業(yè)畢業(yè)生最終的評價標準,就是能不能做項目。一個真實完整獨立的項目,綜合了整個專業(yè)所有的知識和技能。如果能夠在畢業(yè)之前安排這樣的課程來鍛煉學生的綜合項目能力,對于就業(yè)將是一次重要的提升準備。
本系統(tǒng)就是基于這個需求進行設計和開發(fā),模擬一個真實完整的項目,能夠在網(wǎng)上完成學生基本信息管理、課程基本信息管理、學生成績信息管理、學生查詢成績等功能。
1 需求分析
系統(tǒng)管理員:管理所有用戶的用戶等級、用戶權限。
教務管理員:能夠對學生基本信息進行增刪改查、能夠對課程基本信息進行增刪改查、能夠對學生成績信息進行增刪改查。
普通學生用戶:能夠對自己的基本進行查詢和部分修改、能夠對自己的成績信息進行查詢。
2 系統(tǒng)架構設計
2.1 采用B/S架構
C/S架構和B/S架構是現(xiàn)在軟件領域主流的兩種體系結構。C/S就是Client(客戶端)/Server(服務器端),用戶需要在自己的電腦上安裝客戶端才能夠使用軟件,例如QQ、大型3D網(wǎng)絡游戲。B/S是Browser(瀏覽器端)/Server(服務器端),用戶只需要瀏覽器即可使用軟件,通過網(wǎng)絡向服務器發(fā)送請求并接收響應。
現(xiàn)在80%以上的軟件項目是采用B/S架構,用戶只要在瀏覽器上打開網(wǎng)頁即可進入學生成績管理系統(tǒng),不需要維護客戶端,靈活性高,開發(fā)維護成本低。
B/S架構和C/S架構相比,有以下幾個優(yōu)點:
①用戶的使用簡單。軟件的使用者絕大多數(shù)都不是軟件專業(yè)人員,所以在使用時不能太復雜,網(wǎng)頁的使用模式已經(jīng)被現(xiàn)代社會所廣泛接受,所以通過瀏覽器就可以使用的軟件完全可以滿足這個要求。而且使用瀏覽器就可以進入軟件系統(tǒng),而不需要考慮客戶端的硬件軟件環(huán)境,絕大部分功能以請求/響應的模式交給服務器端來處理。
②靈活性高。如果是C/S架構,要使用軟件就必須先安裝客戶端,如果換一臺終端、或者出差去外地,安裝客戶端就顯得很不方便。如果是B/S架構,隨便一臺電腦甚至是手機,只要打開瀏覽器即可進入軟件系統(tǒng)。
2.2 采用MVC三層架構
采用B/S架構,如果不分層次,將業(yè)務邏輯、數(shù)據(jù)模型、頁面顯示混合在一起,那么在后期進行測試調試時,程序員將面對一個一團亂麻、牽一發(fā)而動全身的項目。并且大多項目并不是一蹴而就的,投入使用后沒過多久就會需要擴展升級、二次開發(fā),如果不分層次,在這樣一個項目基礎上進行擴展修改,很多時候還不如完全推翻之后重新開發(fā)一個,大大浪費了時間,降低效率。
MVC模式的優(yōu)點是耦合性低、重用性高、分工明確。
耦合性,是指軟件項目各模塊代碼之間的互相依賴性,改變一處代碼,需要連帶一起改變其它幾個地方的代碼。MVC將業(yè)務邏輯、數(shù)據(jù)模型和數(shù)據(jù)顯示完全分開,層與層之間只存在數(shù)據(jù)傳遞和方法調用,而不存在依賴性,在進行功能擴展和二次開發(fā)時,只需要根據(jù)需求對對應的層進行修改(例如如果需要改動數(shù)據(jù)庫,則只需改變數(shù)據(jù)模型層的代碼),而不會影響到別的層。
重用性,簡單來說,是指同一段代碼可以被不同的功能需求所調用。例如一個項目可能會有不同的View視圖(Web瀏覽器、無線Wap瀏覽器、手機APP等),但是這些視圖的功能需求基本是一致的,對數(shù)據(jù)庫的訪問更新操作也是一致的,那么就可以毫無障礙和差異地調用共同的Model模型。這種可以最大化地重用代碼。
分工明確,在MVC模式下,程序員(Java開發(fā))可以集中精力于Controller業(yè)務邏輯,View視圖可以交給界面設計師,Model數(shù)據(jù)模型可以直接從已經(jīng)設計好的數(shù)據(jù)庫延續(xù)過來。分工明確之后的軟件開發(fā)時間得到大幅縮減。
現(xiàn)在J2EE領域最流行的MVC框架是SSH(Struts/Spring/Hibernate),但在這里不使用框架,僅采用最基本的JSP/Servlet/JavaBean來實現(xiàn)MVC模式。
本系統(tǒng)使用開發(fā)工具MyEclipse 8.5、Tomcat服務器、sqljdbc4、SQL Server,前臺采用HTML/CSS/Javascript網(wǎng)頁布局顯示,后臺采用以jsp/Servlet/JavaBean為三層架構的MVC技術來完成。(圖2)
3 系統(tǒng)詳細設計
3.1 數(shù)據(jù)庫設計
根據(jù)功能需求分析,學生與課程之間存在多對多關系,可以繪制出主要的關系E-R圖如圖3,再加上用戶表,即可得到主要的4個數(shù)據(jù)庫表:學生信息表、課程信息表、考試成績表、用戶表。其中學生表和課程表都與考試成績表存在約束關系。
3.2 視圖層實現(xiàn)
根據(jù)功能需求分析,本系統(tǒng)的業(yè)務流程大致可以劃分成三大模塊。
首先需要共同的主頁、登錄頁面。
學生查詢模塊:學生登錄成功后,可以瀏覽自己的個人信息頁面、考試成績信息頁面。
教務管理模塊:教務管理員登錄成功后,需要學生信息列表頁面、學生詳細信息頁面、課程信息列表頁面、課程詳細信息頁面、考試成績列表頁面、考試成績詳細信息頁面。
3.3 數(shù)據(jù)模型層實現(xiàn)
數(shù)據(jù)模型層與數(shù)據(jù)庫一一對應,模型層中的JavaBean實體類與數(shù)據(jù)庫中的表一致,類的屬性對應于表中的字段。再由DAO類使用JDBC技術提供數(shù)據(jù)庫訪問的增刪改查操作。
數(shù)據(jù)庫連接單獨創(chuàng)建一個專門的連接類來提供靜態(tài)的連接方法:
/*提供用于驅動加載和創(chuàng)建連接、關閉連接的靜態(tài)方法*/
/*四個靜態(tài)常量,用于存儲驅動類、連接地址、用戶名、用戶密碼*/
private static final String CLASS_DRIVER="sun.jdbc.odbc.JdbcOdbcDriver";
private static final String URL="jdbc:odbc:stuent";
private static final String USER="sa";
private static final String PASSWORD="sa";
/*用于加載驅動并創(chuàng)建連接的方法,返回值為創(chuàng)建的連接*、
public static Connection getConn(){
Connection conn=null;
try{
Class.forName(CLASS_DRIVER); //1、加載驅動
conn=DriverManager.getConnection(URL); //2、創(chuàng)建連接
}catch(Exception e){
System.out.println(e.getMessage());
}
return conn;
}
3.4 業(yè)務邏輯層實現(xiàn)
Servlet是用于接收客戶請求,并作出響應的Java程序,是中間件技術的重要部分,它控制著其他的組件,是整個項目的核心。
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=gb2312");
PrintWriter out = response.getWriter();
String userName = request.getParameter("userName");
String userPass = request.getParameter("userPass");
/*接收用戶在表單中輸入的信息,調用用戶DAO類中的登錄驗證方法,根據(jù)返回的結果,如果登錄成功則根據(jù)用戶類型跳轉到不同的頁面,如果登錄失敗則給出提示信息并返回登錄頁面。*/
}
}
4 結語
將MVC三層架構設計模式應用于基于B/S的軟件系統(tǒng)中,這是現(xiàn)在軟件行業(yè)的主流項目架構模式,降低軟件模塊之間的耦合性,提高代碼的復用性、項目的可擴展性和二次開發(fā)可行性,實現(xiàn)軟件開發(fā)的分工,有效降低維護成本。在軟件專業(yè)學生畢業(yè)之前,能夠獨立完成這樣一個真實完整的項目,那么對于他們所學的所有專業(yè)課程是一次綜合和提升,對于應聘于軟件企業(yè)也是大有幫助。
作者簡介:魏蓉,女,畢業(yè)于華中科技大學,碩士,武漢商貿職業(yè)學院軟件專業(yè)教師。