文章編號:1962-5913(2008)13-0098-03
摘要:本文以構建一個簡單軟件實訓網絡管理平臺的項目為例,闡述了編寫Java Web開發應用技術教學案例的總體設計思路,并從開發環境、系統功能等方面介紹了整個平臺的開發過程。
關鍵詞:軟件項目;教學案例;開發過程
中圖分類號:G642 文獻標識碼:B
高等學校計算機專業教學從最初的計算機理論教育到實施理論與實訓一體化已成為計算機教育改革的必然趨勢,不少學院成立了IT實訓基地,旨在培養學生在實際項目中計算機運用的綜合能力。為了使學生更好地理解Java Web開發應用技術知識,我們設計了一個完整的軟件實訓項目案例,從中提取部分任務下發給學生,讓學生在完成任務的同時獲取專業理論知識和相應的IT技能。
1軟件項目的設計環節
1.1設計思路
以介紹Servlet、Web頁面技術和JSP應用為理論依據,以軟件實訓網絡管理平臺—Lidasoft項目貫穿整個案例。內容模塊組織結構如表1所示。

1.2項目任務設計
Java Web開發主要由Servlet、Web頁面技術和JSP應用三個方面組成,在完成的整個項目中要分別體現出這些技術的使用。設計的項目任務描述如下:
(1)Servlet簡介
Lidasoft是一個規范軟件項目實訓管理流程的校園服務系統。校領導想了解該平臺的普及和使用程度,項目組需要開發跟蹤訪問Lidasoft站點。
每個用戶訪問Lidasoft主頁時,點擊數加1,客戶瀏覽器運行在不同機器上。如果把點擊計數的數據保存在客戶端上,只能用來記錄某個特定用戶登錄平臺的次數,因此該數據必須保存在服務器端。
為了解決上述問題,需要使用編寫Web服務器端程序—Java Servlet技術。
(2)Web頁面設計
Lidasoft項目組準備開發一個Web站點,要進入軟件項目實訓管理主頁面,必須首先從此Web站點上登錄。學生使用學號與口令進行平臺登錄。包含確認和取消按鈕。當學生點擊確認按鈕時,顯示當前登錄的人數。點擊取消按鈕時,刪除輸入的數據。
(3)JSP應用
需要創建一個應用來驗證學生輸入的學號與口令,即在學生輸入信息單擊確認后,驗證輸入數據不為空且與存放在數據庫服務器中的學號與口令是否一致。信息正確鏈接顯示當前登錄人數的頁面,否則不跳轉。
為了加速項目開發,需要同時實現驗證數據不為空和查詢數據庫的功能。可以使用服務器端JSP技術來解決同時構造靜態(Web用戶登錄界面)和動態(驗證數據不為空、查詢數據庫)頁面的問題。
2部分界面及功能的實現
2.1開發跟蹤訪問Lidasoft站點
客戶端每次點擊http://10.11.5.64:8000/lidasoft/jishu,即向服務器端發送了一個請求,通過調用Servlet的service()中的doPost()方法來實現計數變量count加1。下面是點擊數加1的Servlet服務器端子程序:
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對象內容傳遞至超類
super.init(config);
}
// 定義計數變量跟蹤訪問Lidasoft站點
static int count;
//處理請求對象并用\"響應\"對象的方法將響應傳回給客戶機
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>\");
}
//提供相關Servlet的信息
public String getServletInfo()
{
return \"HTTPServlet Information\";
}
public void destroy()
{}
}
2.2創建Web用戶界面
用戶登錄界面是一個包含表單的HTML頁面,當用戶點擊確認按鈕時,名為jishu的Servlet將接收登錄材料,并執行doPost()方法。創建的Web用戶界面效果如圖1所示。

2.3創建基于JSP的動態Web頁面
JSP是充滿標準HTML代碼的文本文件,其中加入了一些類似Java的代碼,它向JavaBean描述需求的數據。后者提供所需的Bean組件。組件中定義相應屬性,類及數據操作的方法。以下是JavaBean查詢數據庫的子程序。
import java.io.*;
import java.sql.*;
public class loginBean
{
//聲明Bean的私有屬性,初值為空
private String textfield=\" \";
private String password=\" \";
//用來連接和查詢數據庫的類
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\");
}
//查詢數據庫,驗證數據正確性
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);
//執行查詢
while(r.next())
{
passwordNo = r.getString(1);
}
passwordNo=passwordNo.trim();
password=password.trim();
//檢驗外部輸入值是否與 passwordNo值相符,相同則為有效數據
if(passwordNo.equals(password))
{
validate = true;
}
}
catch(Exception e)
{
System.err.print(e);
}
return validate;
}
}
3結束語
Java Web開發應用的教學案例以完整的軟件項目結合Java Web開發技術的方式分別介紹了Java的Web開發應用中所使用的服務器端技術。內容涵蓋Servlet的生命周期,如何在J2EE服務器上部署Servlet,怎樣從Html頁面訪問Servlet,怎樣在表單中調用Servlet的方法,如何使用JavaBean從數據庫中檢索數據,如何使用JSP標簽從內部調用JavaBean顯示數據,以及怎樣從JSP跳轉至Servlet頁面中。
通過項目任務的指派,引導學生在操作步驟的指引下自主獨立的完成實踐任務,整合系統,然后再體會項目設計的思路和流程,從而掌握專業知識的要點。
參考文獻
[1] Steven Haines, Stephen Potts. Java 2 Primer Plus中文版[M]. 北京:人民郵電出版,2003:271-368.
[2] NIIT. Enterprise Java Programming Part2(企業級JAVA的應用)[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