文章編號:1962-5913(2008)13-0098-03
摘要:本文以構(gòu)建一個簡單軟件實訓(xùn)網(wǎng)絡(luò)管理平臺的項目為例,闡述了編寫Java Web開發(fā)應(yīng)用技術(shù)教學(xué)案例的總體設(shè)計思路,并從開發(fā)環(huán)境、系統(tǒng)功能等方面介紹了整個平臺的開發(fā)過程。
關(guān)鍵詞:軟件項目;教學(xué)案例;開發(fā)過程
中圖分類號:G642 文獻標(biāo)識碼:B
高等學(xué)校計算機專業(yè)教學(xué)從最初的計算機理論教育到實施理論與實訓(xùn)一體化已成為計算機教育改革的必然趨勢,不少學(xué)院成立了IT實訓(xùn)基地,旨在培養(yǎng)學(xué)生在實際項目中計算機運用的綜合能力。為了使學(xué)生更好地理解Java Web開發(fā)應(yīng)用技術(shù)知識,我們設(shè)計了一個完整的軟件實訓(xùn)項目案例,從中提取部分任務(wù)下發(fā)給學(xué)生,讓學(xué)生在完成任務(wù)的同時獲取專業(yè)理論知識和相應(yīng)的IT技能。
1軟件項目的設(shè)計環(huán)節(jié)
1.1設(shè)計思路
以介紹Servlet、Web頁面技術(shù)和JSP應(yīng)用為理論依據(jù),以軟件實訓(xùn)網(wǎng)絡(luò)管理平臺—Lidasoft項目貫穿整個案例。內(nèi)容模塊組織結(jié)構(gòu)如表1所示。
1.2項目任務(wù)設(shè)計
Java Web開發(fā)主要由Servlet、Web頁面技術(shù)和JSP應(yīng)用三個方面組成,在完成的整個項目中要分別體現(xiàn)出這些技術(shù)的使用。設(shè)計的項目任務(wù)描述如下:
(1)Servlet簡介
Lidasoft是一個規(guī)范軟件項目實訓(xùn)管理流程的校園服務(wù)系統(tǒng)。校領(lǐng)導(dǎo)想了解該平臺的普及和使用程度,項目組需要開發(fā)跟蹤訪問Lidasoft站點。
每個用戶訪問Lidasoft主頁時,點擊數(shù)加1,客戶瀏覽器運行在不同機器上。如果把點擊計數(shù)的數(shù)據(jù)保存在客戶端上,只能用來記錄某個特定用戶登錄平臺的次數(shù),因此該數(shù)據(jù)必須保存在服務(wù)器端。
為了解決上述問題,需要使用編寫Web服務(wù)器端程序—Java Servlet技術(shù)。
(2)Web頁面設(shè)計
Lidasoft項目組準(zhǔn)備開發(fā)一個Web站點,要進入軟件項目實訓(xùn)管理主頁面,必須首先從此Web站點上登錄。學(xué)生使用學(xué)號與口令進行平臺登錄。包含確認和取消按鈕。當(dāng)學(xué)生點擊確認按鈕時,顯示當(dāng)前登錄的人數(shù)。點擊取消按鈕時,刪除輸入的數(shù)據(jù)。
(3)JSP應(yīng)用
需要創(chuàng)建一個應(yīng)用來驗證學(xué)生輸入的學(xué)號與口令,即在學(xué)生輸入信息單擊確認后,驗證輸入數(shù)據(jù)不為空且與存放在數(shù)據(jù)庫服務(wù)器中的學(xué)號與口令是否一致。信息正確鏈接顯示當(dāng)前登錄人數(shù)的頁面,否則不跳轉(zhuǎn)。
為了加速項目開發(fā),需要同時實現(xiàn)驗證數(shù)據(jù)不為空和查詢數(shù)據(jù)庫的功能。可以使用服務(wù)器端JSP技術(shù)來解決同時構(gòu)造靜態(tài)(Web用戶登錄界面)和動態(tài)(驗證數(shù)據(jù)不為空、查詢數(shù)據(jù)庫)頁面的問題。
2部分界面及功能的實現(xiàn)
2.1開發(fā)跟蹤訪問Lidasoft站點
客戶端每次點擊http://10.11.5.64:8000/lidasoft/jishu,即向服務(wù)器端發(fā)送了一個請求,通過調(diào)用Servlet的service()中的doPost()方法來實現(xiàn)計數(shù)變量count加1。下面是點擊數(shù)加1的Servlet服務(wù)器端子程序:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class jishuServlet extends HttpServlet
{
public void init(ServletConfig config) throws ServletException
{
//ServletConfig對象內(nèi)容傳遞至超類
super.init(config);
}
// 定義計數(shù)變量跟蹤訪問Lidasoft站點
static int count;
//處理請求對象并用\"響應(yīng)\"對象的方法將響應(yīng)傳回給客戶機
public void doGet(HttpServletRequest r, HttpServletResponse s) throws ServletException, IOException
{
s.setContentType(\"text/html\");
PrintWriter out=s.getWriter();
count++;
out.println(\"<html>\");
out.println(\"<head><title> HTTPServlet </title></head>\");
out.println(\"<body>\");
out.println(\"Now the Number is :\" + String.valueOf(count) + \"\\");
out.println(\"</body></html>\");
}
public void doPost(HttpServletRequest r, HttpServletResponse s) throws ServletException, IOException
{
s.setContentType(\"text/html\");
PrintWriter out=s.getWriter();
count++;
out.println(\"<html>\");
out.println(\"<head><title> HTTPServlet </title></head>\");
out.println(\"<body>\");
out.println(\"Now the Number is :\" + String.valueOf(count) + \"\\");
out.println(\"</body></html>\");
}
//提供相關(guān)Servlet的信息
public String getServletInfo()
{
return \"HTTPServlet Information\";
}
public void destroy()
{}
}
2.2創(chuàng)建Web用戶界面
用戶登錄界面是一個包含表單的HTML頁面,當(dāng)用戶點擊確認按鈕時,名為jishu的Servlet將接收登錄材料,并執(zhí)行doPost()方法。創(chuàng)建的Web用戶界面效果如圖1所示。
2.3創(chuàng)建基于JSP的動態(tài)Web頁面
JSP是充滿標(biāo)準(zhǔn)HTML代碼的文本文件,其中加入了一些類似Java的代碼,它向JavaBean描述需求的數(shù)據(jù)。后者提供所需的Bean組件。組件中定義相應(yīng)屬性,類及數(shù)據(jù)操作的方法。以下是JavaBean查詢數(shù)據(jù)庫的子程序。
import java.io.*;
import java.sql.*;
public class loginBean
{
//聲明Bean的私有屬性,初值為空
private String textfield=\" \";
private String password=\" \";
//用來連接和查詢數(shù)據(jù)庫的類
Connection con = 1;
Statement s = 1;
ResultSet r = 1;
//使用set與get方法訪問Bean屬性
public void settextfield(String textfield)
{
this.textfield=textfield;
}
public void setpassword(String password)
{
this.password=password;
}
public String gettextfield()
{
return textfield;
}
public String getpassword()
{
return password;
}
public loginBean() throws ClassNotFoundException
{
Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");
}
//查詢數(shù)據(jù)庫,驗證數(shù)據(jù)正確性
public boolean AccountValidate()
{
booleanvalidate=1;
String passwordNo=\"\";
try
{
textfield=gettextfield();
password=getpassword();
con=DriverManager.getConnection(\"jdbc:odbc:LidaSource\",\"sa\",\"\");
String Query = \"Select password_no from Login_inf where textfield_id='\"+
textfield+\"'\" ;
s = con.createStatement();
r = s.executeQuery(Query);
//執(zhí)行查詢
while(r.next())
{
passwordNo = r.getString(1);
}
passwordNo=passwordNo.trim();
password=password.trim();
//檢驗外部輸入值是否與 passwordNo值相符,相同則為有效數(shù)據(jù)
if(passwordNo.equals(password))
{
validate = true;
}
}
catch(Exception e)
{
System.err.print(e);
}
return validate;
}
}
3結(jié)束語
Java Web開發(fā)應(yīng)用的教學(xué)案例以完整的軟件項目結(jié)合Java Web開發(fā)技術(shù)的方式分別介紹了Java的Web開發(fā)應(yīng)用中所使用的服務(wù)器端技術(shù)。內(nèi)容涵蓋Servlet的生命周期,如何在J2EE服務(wù)器上部署Servlet,怎樣從Html頁面訪問Servlet,怎樣在表單中調(diào)用Servlet的方法,如何使用JavaBean從數(shù)據(jù)庫中檢索數(shù)據(jù),如何使用JSP標(biāo)簽從內(nèi)部調(diào)用JavaBean顯示數(shù)據(jù),以及怎樣從JSP跳轉(zhuǎn)至Servlet頁面中。
通過項目任務(wù)的指派,引導(dǎo)學(xué)生在操作步驟的指引下自主獨立的完成實踐任務(wù),整合系統(tǒng),然后再體會項目設(shè)計的思路和流程,從而掌握專業(yè)知識的要點。
參考文獻
[1] Steven Haines, Stephen Potts. Java 2 Primer Plus中文版[M]. 北京:人民郵電出版,2003:271-368.
[2] NIIT. Enterprise Java Programming Part2(企業(yè)級JAVA的應(yīng)用)[M]. 2001:13-42.
A Teaching case in Java Web programming
ZHANG Qin
(Department of Computer Science, Shanghai Lida Polytechnic Institute, Shanghai 201609,China)
Abstract: This paper introduces a design for a network management platform of the software project development., including some teaching case in Java Web programs, the development environment of the platform, system functions and so on..
Key words: software project, teaching case, software process design