《Java Web應用軟件開發(fā)》考試方案
《JavaWeb應用軟件開發(fā)》考試方案
題目要求:
一、基于JSP技術(shù),完成網(wǎng)絡留言板。主要功能包括:前臺(添加留言、查看留言、客戶端驗證等),后臺(管理員登錄、權(quán)限控制、管理員管理留言等)。
二、完成項目開發(fā)的總結(jié)報告。
三、項目答辯:就最終完成的項目,匯報演示,并回答教師、同學的提問。匯報內(nèi)容:1.系統(tǒng)已實現(xiàn)的內(nèi)容
2.系統(tǒng)用到的技術(shù),并具體說出1-2個自認為應用得比較巧妙或者技術(shù)含量較強的技術(shù),談談采用該技術(shù)的原因及如何應用該技術(shù)的。
3.系統(tǒng)中的原創(chuàng)內(nèi)容。
4.在整個過程中參考了哪些資料,最受益的參考資料的出處。5.在制作過程中遇到過的困難及解決辦法。
6.在整個過程中,從同一學習小組的其他成員身上學到了哪些優(yōu)秀的品質(zhì)與精神。7.項目的不足及今后的改進想法。
評分標準:
一、網(wǎng)絡留言板項目(40%)
1.系統(tǒng)運行無明顯異常(40分);2.數(shù)據(jù)庫完備(10分);3.改進完善已學功能(10分);
4.在基本要求基礎上增加了新的功能,并且運行無明顯異常(10分);
5.編碼規(guī)范:代碼格式規(guī)范(5分)、變量等命名規(guī)范(5分)、有必要的注釋(10分);6.網(wǎng)頁界面結(jié)構(gòu)清晰,色彩搭配合理,干凈整潔、美觀大方,文字和圖片內(nèi)容統(tǒng)一(10分)。
二、總結(jié)報告(30%)
1.能夠正確總結(jié)網(wǎng)絡留言板項目所涉及的技術(shù)(10分),并能選擇出3~5項重點使用的技術(shù),具體介紹其在項目中的應用過程(50分)。
2.能夠根據(jù)實際學習情況寫出心得體會(20分)。3.條理清晰,語言流暢。(20分)
三、項目答辯(30%)
教師及各學習小組依據(jù)下表,給出答辯學生的答辯成績。教師與學習小組給出的成績各占50%。課程名稱項目名稱評價構(gòu)成布局技術(shù)答辯程序結(jié)構(gòu)創(chuàng)新儀態(tài)儀表現(xiàn)場表現(xiàn)姓名評審標準學號班級分值得分20201*1010101010100描述模塊的功能、描述函數(shù)的調(diào)用關系(15分),描述相關函數(shù)的功能及技術(shù)點設計的原理(5分)描述整個軟件的層次結(jié)構(gòu)(15分),描述其它業(yè)務模塊的功能及技術(shù)難點(5分)提出合理化建議(5分),有創(chuàng)新之處(5分)表達清晰使用普通話注意禮儀細節(jié)禮儀規(guī)范表述流暢自然自然,落落大方,自信總計
擴展閱讀:《Java Web應用軟件開發(fā)》講義
《JavaWeb應用軟件開發(fā)》講義
任務一:JSP運行、開發(fā)環(huán)境的構(gòu)建(201*-2-24)
1、Web應用程序體系結(jié)構(gòu)
三層架構(gòu)
數(shù)據(jù)顯示層相互調(diào)用邏輯計算層相互調(diào)用數(shù)據(jù)處理層客戶端
應用服務器數(shù)據(jù)庫服務器本地用戶使用的計算機,通過客戶端軟件請求應用服務器提供服務。
接受客戶請求進行數(shù)據(jù)計算,并把計算結(jié)果返回給客戶。JSP頁面使用的服務器,該服務器通常由JSP引擎、Servlet引擎和Web服務器構(gòu)成。
提供數(shù)據(jù)處理和事務處理。例如,SQLServer201*、MYSQL、Oracle。
二層架構(gòu)
數(shù)據(jù)展示層相互調(diào)用邏輯計算與數(shù)據(jù)處理放在同一層客戶端應用服務器與數(shù)據(jù)庫服務器
2、應用服務器
Web服務器
①請求客戶端瀏覽器③響應Web服務器②處理JSP引擎與Servlet引擎
3、Tomcat目錄結(jié)構(gòu)
4、MyEclipse配置
配置Tomcat+JDK字體設置
5、MyEclipse中Web項目的建立(程序參考教材13頁)
6、JSP運行原理
任務二:添加留言頁面設計(201*-3-2)
1、相關JSP語法
page指令標簽
Java代碼塊:在“”之間插入Java代碼塊表達式:在“”之間插入表達式
out內(nèi)置對象:javax.servlet.jsp.JspWriter的實例
2、相關JavaScript語法
如何將JavaScript代碼嵌入頁面
在頁面文檔中,使用標記嵌入腳本代碼
/*JavaScript代碼*/
//或者:type="text/javascript"
3、知識拓展頁面刷新方法
JavaScript方式
setTimeout("self.location.reload();",1000);HTML方式
刷新測試
JSP方式
4、Dreamweaver輔助頁面設計
版權(quán)符號:©空格:任務三:添加留言客戶端驗證(201*-3-9、201*-3-16)
1、JavaScript語法
如何將JavaScript代碼嵌入頁面
在頁面文檔中,使用標記嵌入腳本代碼
/*JavaScript代碼*/
JavaScript腳本代碼的位置
標簽對可以出現(xiàn)在網(wǎng)頁文檔的任何位置,而且可以有多對頁面主體(元素):01.html頁面頭部(元素):02.html
放置在單獨的文件中,該文件以“.js”為擴展名03.htmlm3.js
將腳本程序代碼作為屬性值
javascript
//或者:type="text/javascript"
2、FckEditor的使用
通過下載等方式得到FCKeditor,例如:FCKeditor_2.6.3.zip。將FCKeditor_2.6.3.zip解壓。
可瘦身解壓后的FCKeditor文件夾里的內(nèi)容:
刪除_samples文件夾;
刪除editor文件夾下的_source、plugins文件夾;
editor文件夾下的lang文件夾里只需保留中英文的js文件:zh.js、zh-cn.js、en.js,其它可刪除;
editor文件夾下的skin文件夾里只需保留default即可。
將瘦身后的FCKeditor文件夾整個引入項目的WebRoot下。在相應頁面里添加如下代碼:
如果用FckEditor添加一個新的文本輸入域,那么在Form表單標記里,用以下代碼取代標簽對:
vareditor=newFCKeditor("content");
editor.BasePath="web應用根地址/fckeditor/";//例如:mybook項目的網(wǎng)站根地址是mybookeditor.Height=300;
editor.ToolbarSet="Default";editor.Create();
以后要想取得FckEditor文本域里的內(nèi)容,可通過“content”這個名字。
如果用于修改已有的HTML方式的文本域,那么頁面代碼的Form表單標記里,標簽對的位置的代碼類似下面所示:window.onload=function(){
varoFCKeditor=newFCKeditor("content");
}oFCKeditor.BasePath="/fckeditor/";//context=request.getContextPath()oFCKeditor.Height=300;
oFCKeditor.ToolbarSet="Default";
oFCKeditor.ReplaceTextarea();//替換后面的TextArea
3、JSValidation的使用
在項目的WebRoot下事先創(chuàng)建一個文件夾(folder),命名為:jsvalidation(或其它合法的名字)。解壓jsvalidation-1_0b4.zip。先將JSValidation文件夾中的validation-config.dtd、validation-config.xml兩個文件引入項目剛剛建立的文件夾“jsvalidation”下。對于JSValidation文件夾中的validation-framework.js需要更改所使用的字符集,再引入項目中建立的文件夾“jsvalidation”下。方法:用文本編輯器(如:記事本)打開validation-framework.js,然后另存,選擇另存對話框里的字符集,設置為utf-8或中文字符集(如:GBK、GB2312、GB18030)。在項目的JSValidation文件夾里引入修改字符集后的validation-framework.js(如果事先已引入,則先刪除再引入)。打開validation-framework.js,更改第一個非注釋行:varValidationRoot="";類似:
varValidationRoot="/mybook/jsvalidation/";然后保存。
項目中頁面的表單,如果要使用JSValidation驗證框架,只要表單里元素內(nèi)容不相同或者要求不同,表單的name屬性就應該不一樣。打開validation-config.xml,其中已有配置的例子,再參考JSValidation驗證框架的用戶手冊第5、6部分,即可配置自己項目的前臺驗證功能。例如,對添加留言的前臺驗證的配置如下:
在需要進行驗證的頁面中,加入類似下面的內(nèi)容:
在要驗證的Form表單標記處,增加onsubmit屬性,設置為:onsubmit="returndoValidate(this)"
4、使用FireFox錯誤控制臺輔助調(diào)試JavaScript代碼錯誤
任務四:添加留言功能實現(xiàn)(201*-3-23、201*-3-30、201*-4-6、201*-4-13、
201*-4-20)
1、HTML元素
參考教材Page17-22的內(nèi)容
2、MyEclipse下JavaWeb項目的組織框架與Tomcat下已部署(/發(fā)布)項目的目錄結(jié)構(gòu)對照
3、include指令標簽
參考教材Page42-43的內(nèi)容
4、初識EL表達式
參考教材Page139
5、添加留言服務器端驗證標簽的action屬性
設置處理表單數(shù)據(jù)程序的URL地址
服務器端驗證的原因
request內(nèi)置對象參考JEEAPI
getContextPath()方法:獲取Web應用在服務器上的根目錄getParameter()方法:獲取請求參數(shù)
setCharacterEncoding()方法:設置從request中取出的值的編碼方式,默認編碼方式為iso-8859-1getRequestDispatcher()方法:請求轉(zhuǎn)發(fā),前后頁面共享一個request。利用該方法返回的RequestDispatcher對象的forward()方法,可繼續(xù)跳轉(zhuǎn)到后一個頁面。
StringTool工具類的編寫
packagesjzpc.jsp.tools;importjava.util.regex.Matcher;importjava.util.regex.Pattern;
publicclassStringTool{
publicstaticfinalStringEMAIL_REGEXP="\\\\w+([-+.]\\\\w+)*@\\\\w+([-.]\\\\w+)*\\\\.\\\\w+([-.]\\\\w+)*";public
static
final
String
PHONE_REGEXP
="((\\\\d{11})|^((\\\\d{7,8})|(\\\\d{4}|\\\\d{3})-(\\\\d{7,8})|(\\\\d{4}|\\\\d{3})-(\\\\d{7,8})-(\\\\d{4}|\\\\d{3}|\\\\d{2}|\\\\d{1})|(\\\\d{7,8})-(\\\\d{4}|\\\\d{3}|\\\\d{2}|\\\\d{1}))$)";
//驗證為空
publicstaticbooleanisNull(Stringstr){}
//過濾HTML符號
publicstaticStringfilterHtml(StringstrTemp){
if(strTemp==null){}
if(strTemp.length()==0){}
Stringtemp=null;
temp=strTemp.replaceAll("&","&");temp=temp.replaceAll("",">");temp=temp.replaceAll("","");temp=temp.replaceAll(""","'");temp=temp.replaceAll("\\"",""");
returnstrTemp;returnnull;
if(str==null||str.length()==0){}
returnfalse;
returntrue;}
}temp=temp.replaceAll("\\n","");returntemp;
//驗證E-mail
publicstaticbooleanisEmail(Stringemail){}
//驗證電話
publicstaticbooleanisPhone(Stringphone){}
Patternp=Pattern.compile(PHONE_REGEXP);Matcherm=p.matcher(phone);if(m.matches()){}
returnfalse;
returntrue;
Patternp=Pattern.compile(EMAIL_REGEXP);Matcherm=p.matcher(email);if(m.matches()){}
returnfalse;
returntrue;
MySQL數(shù)據(jù)庫使用
字符集設置
可以通過my.ini文件進行配置
第57行:default-character-set=gb2312#[client]的字符集設置第81行:default-character-set=utf8#[mysqld]的字符集設置
進入MySQL字符管理界面
(說明:可以利用其它圖形界面管理工具對數(shù)據(jù)庫進行管理。)
windows開始菜單→所有程序→MySQL→MySQLServer5.0→MySQLCommandLineClient在之后的命令行窗口輸入密碼:123456(注:微三機房MySQL的密碼)
查看數(shù)據(jù)庫服務器上的所有數(shù)據(jù)庫:showdatabases;創(chuàng)建數(shù)據(jù)庫
createdatabaseifnotexistsmybookdefaultcharacterset=utf8;使用某個數(shù)據(jù)庫(如mybook):usemybook;創(chuàng)建數(shù)據(jù)表
createtableifnotexistsmybook(
idintnotnullauto_incrementprimarykey,nicknamevarchar(20)notnull,emailvarchar(20),telvarchar(20),
titlevarchar(40)notnull,contenttext,timedatetimenotnull
)ENGINE=InnoDBdefaultcharacterset=utf8;查看某個數(shù)據(jù)庫中的所有表:showtables;
查看表結(jié)構(gòu):describe表名;刪表/庫:drop庫名/表名;
使用腳本文件:\\.C:/mydata.sql(注意:該命令后不能跟英文分號)Windows下導出/導入MySql數(shù)據(jù)庫
開始->運行->cmd
用cd切換到MySql安裝目錄下的bin目錄
如果導出,在命令行中輸入:mysqldump-u用戶名p密碼數(shù)據(jù)庫名>文件名.sql
導入為:mysql-u用戶名-p密碼數(shù)據(jù)庫名<文件名.sql
JDBC編程
參考教材第7章7.1~7.7的內(nèi)容注意:
本項目使用的是MySQL數(shù)據(jù)庫,因此需將mysql-connector-java-5.1.6-bin.jar復制粘貼到
tomcat的lib文件夾里;或者復制粘貼到項目的lib文件夾里。
異常處理規(guī)范:盡可能在編程時處理各種可能出現(xiàn)的運行時異常!
JDBC編程規(guī)范:針對數(shù)據(jù)庫操作的資源,在用完后要及時釋放,即程序中的相關變量賦值成null。
解決MySQL6.0(微三使用的版本是6.0)中文亂碼問題按前述方式修改my.ini文件
寫代碼時,連接MySQL數(shù)據(jù)庫時需指定字符集,即MySQL數(shù)據(jù)庫連接字符串形如:"jdbc:mysql://localhost:3306/mybookdb?useUnicode=true&characterEncoding=utf-8"服務器端處理添加留言的流程:通過request內(nèi)置對象獲取用戶輸入的內(nèi)容(昵稱、電話、Email、主題、內(nèi)容)是昵稱、主題為空?否是Email、電話為空?否否Email、電話合法?是將用戶填寫的內(nèi)容存入數(shù)據(jù)庫:期間若發(fā)生異常,則將相關信息存入message變量;否則將message變量的值重置為:"留言被成功保存"將message變量裝入request內(nèi)置對象,頁面跳轉(zhuǎn)至結(jié)果頁面
數(shù)據(jù)庫連接池
使用目的:程序與數(shù)據(jù)庫建立連接的過程比較耗時,為提高工作效率,可以在服務器啟動時,事先建立一些與數(shù)據(jù)庫的連接放在數(shù)據(jù)庫連接池中,當程序運行時,隨時從池子中取得連接,對數(shù)據(jù)庫進行操作,操作完成,再將連接放回池子里。可參考教材第7章7.8.1~7.8.3的內(nèi)容本項目中的做法:
(1)本項目使用的是MySQL數(shù)據(jù)庫,因此需將mysql-connector-java-5.1.6-bin.jar復制粘貼到tomcat的lib文件夾內(nèi);如果lib文件夾里已有mysql-connector-java-5.1.6-bin.jar,則不需要做這步操作。
(2)在tomcat的conf\\Catalina\\localhost文件夾(如果conf下不存在Catalina\\localhost,可以手動建立)內(nèi)建立一個.xml的文件(如mybook.xml),該文件的內(nèi)容如下:
(3)程序中,使用如下類似語句獲得對數(shù)據(jù)庫的連接:Contextctxt=null;DataSourceds=null;Connectionconn=null;
ctxt=(Context)newInitialContext().lookup("java:/comp/env");ds=(DataSource)ctxt.lookup("jdbc/mybookDS");conn=ds.getConnection();
DBOperate工具類的編寫
//該類利用了Commons-DBUtils組件提供的功能packagesjzpc.jsp.tools;importjava.sql.SQLException;importjavax.naming.Context;importjavax.naming.InitialContext;importjavax.naming.NamingException;importjavax.sql.DataSource;
importorg.apache.commons.dbutils.QueryRunner;importorg.apache.commons.dbutils.ResultSetHandler;
publicclassDBOperate{
//對所有數(shù)據(jù)表都通用的操作privateDataSourceds;publicDBOperate(){}
privatevoidinit(){}
try{}
Contextcontext=newInitialContext();
ds=(DataSource)context.lookup("java:/comp/env/jdbc/mybookDS");e.printStackTrace();
init();
}catch(NamingExceptione){//更新:增刪改
intresult=0;
QueryRunnerqr=newQueryRunner(ds);try{}
returnresult==1;
result=qr.update(sql,params);e.printStackTrace();}catch(SQLExceptione){
publicbooleanupdate(Stringsql,String[]params){
}//查詢
Objectresult=null;
QueryRunnerqr=newQueryRunner(ds);try{}
returnresult;
result=qr.query(sql,params,rsh);//TODOAuto-generatedcatchblocke.printStackTrace();}catch(SQLExceptione){
publicObjectquery(Stringsql,String[]params,ResultSetHandlerrsh){
}}Servlet的使用
可參考教材第6章6.1~6.6的內(nèi)容
表示層的兩種架構(gòu)模式參考教材第11章11.1的內(nèi)容
Model1架構(gòu)模式瀏覽request器responseJSPJavaBeans數(shù)據(jù)庫Web服務器
Model2架構(gòu)模式
瀏覽器requestServlet數(shù)據(jù)庫responseJSPJavaBeansWeb服務器
友情提示:本文中關于《《Java Web應用軟件開發(fā)》考試方案》給出的范例僅供您參考拓展思維使用,《Java Web應用軟件開發(fā)》考試方案:該篇文章建議您自主創(chuàng)作。
來源:網(wǎng)絡整理 免責聲明:本文僅限學習分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時刪除。