JavaWeb實習(xí)報告
武漢工程大學(xué)計算機科學(xué)與工程學(xué)院生產(chǎn)實習(xí)報告
JavaWeb實習(xí)報告
一、實習(xí)目的與任務(wù)
為了鍛煉我們的實踐動手能力,提高我們分析問題、解決問題的能力,培養(yǎng)我們的工作意識和團隊合作的意識,了解軟件開發(fā)的過程和基本流程,以便于幫助我們能夠在大四畢業(yè)時可找到一份客觀的工作,我們在大四剛開學(xué)就開始了生產(chǎn)實習(xí)。
這次實習(xí)的主要任務(wù)是JavaWeb軟件開發(fā),學(xué)習(xí)Java開發(fā)中比較典型且經(jīng)常用到的幾個知識,其中包括Jsp、Servlet、Html、JDBC等等,另外,Java開發(fā)中也必須要用到數(shù)據(jù)庫,因此實習(xí)中還加入了Mysql數(shù)據(jù)庫的學(xué)習(xí)。掌握了這些基本知識之后,就開始真正的項目開發(fā),而且此次我們所要開發(fā)的項目是有關(guān)博客頁面的項目,并完成老師指定的功能。
二、實習(xí)地點
重慶足下科技有限公司
三、實習(xí)內(nèi)容和要求
我們這次實習(xí),在校外也就是軟帝公司總共是十天,開始幾天基本上是每天學(xué)習(xí)一個方面的內(nèi)容,大概學(xué)習(xí)了六天其中包括Jsp、Servlet、Html、JDBC、Mysql等等,剩下幾天就是項目時間,做出一個博客開發(fā)的項目。大致內(nèi)容如下:
一、Java語言簡介
Java語言Java是由Sun微系統(tǒng)公司所發(fā)展出來的程序語言,它是一種面向地向的語言,Java也號稱是能跨平臺使用的語言,這主要是因為Java本身被編譯之后,并不是直接產(chǎn)生可執(zhí)行的代碼,而是產(chǎn)生一種中間碼叫作ByteCode,這種代碼必需在透過Java的直譯器來解讀它,才能夠真正的被執(zhí)行,所以只要平臺上裝有這種Java的直譯器,就能解讀ByteCode也就能執(zhí)行Java編譯過的程序,故與Java程序是在那種平臺上被編譯的,就完全沒有干系了。
Java寫出來的程序可分為兩類,分別是JavaApplet與一般的Application,而Application這一類就與一般的程序如C++的作用是比較類似的,是一個獨立可執(zhí)行的應(yīng)用程序,像HotJava是一個瀏覽器,且就是使用Java程序所發(fā)展出來的。最常見的Java程序包括應(yīng)用程序和applets。應(yīng)用程序是單獨的程序,諸如HotJava瀏覽器軟件就是用Java語言編寫的。
Applets類似于應(yīng)用程序,但是它們不能單獨運行,Applets可以在支持Java的瀏覽器中運行。Applet主要是內(nèi)置于HTML網(wǎng)頁中,在瀏覽時發(fā)揮作用。
Java的目標(biāo)是為了滿足在一個充滿各式各樣不同種機器,不同操作系統(tǒng)平臺的網(wǎng)絡(luò)環(huán)境中開發(fā)軟件。利用Java程序語言,可以進(jìn)行網(wǎng)頁開發(fā),其中包括靜態(tài)語言開發(fā)與動態(tài)網(wǎng)頁開發(fā),可以在網(wǎng)頁中加入各式各樣的動態(tài)效果,可以放上一段動畫,加入聲音,也可以建立交互式網(wǎng)頁等。
二、Html語言
Html是超文本標(biāo)記語言,它是一種非嚴(yán)格的標(biāo)記語言,它是web開發(fā)的基礎(chǔ),也是制作網(wǎng)頁的基礎(chǔ),純html的頁面是靜態(tài)的。
Html它由head和body兩部分組成,所寫的內(nèi)容一般都是放在body中,其中可以添加Form表單域,其中屬性Action表示提交的動作,也就是提交到那個頁面,可表示為Action=“”;Method屬性表示提交的方法,一般為設(shè)為post;在Form表單域中添加table表,table中的屬性只有很多,常用的有width、height、align、colspan
武漢工程大學(xué)計算機科學(xué)與工程學(xué)院生產(chǎn)實習(xí)報告
等等,當(dāng)然,有表就會有行和列,其中行用tr表示,列用td表示,行與列的屬性值與table差不多。
在行與列中還可以添加一些按鈕,鏈接等等,添加按鈕是用表示,添加鏈接則用來添加,另外,還有一個比較有用的標(biāo)簽,可以畫出一個框,里面可以添加所需要的東西。
運用Html我們開發(fā)了一個e-mail郵件發(fā)送系統(tǒng),這個界面主要用到了七個htm文件,有主頁面main.html,其中主頁面分為上部、左部和右部,分別用top.html、left.html、right.html文件來表示。另外還增加了登錄頁面(login.html)、注冊頁面(regist.html)以及書寫郵件的頁面(write.html),由這些html文件共同實現(xiàn)了e-mail的基本界面。
首先進(jìn)入login登錄界面,輸入用戶名和密碼,而且用戶名和密碼有一定的限制,輸入信息符合要求后方可進(jìn)入主頁面,另外,在登錄界面的用戶名后還有一個超鏈接“注冊”,點擊“注冊”就可以進(jìn)入注冊的頁面,注冊頁面上有五行,包括用戶名、密碼、重復(fù)密碼以及上傳頭像,另外還有兩個按鈕“提交注冊”和“重置”,這樣即可完成注冊。
登陸界面中還用到了JavaScript,用以給出用戶名和密碼的限制條件,其中有一個function方法,用到的代碼如下:
functioncheckInfo(){varname=document.getElementById("username").value;varpass=document.getElementById("pass").value;if(name==""){alert("請輸入用戶名!");returnfalse;}else{if(pass==""){alert("請輸入密碼!");returnfalse;}else{returntrue;}}}
以后若要用到限制條件,都是運用與此類似的方法,這段代碼可以說是一個模板。進(jìn)入到主頁面后,可以看到三個部分,左邊的部分用鏈接列出幾項,包括“寫信”、“收信”、“聯(lián)系人”、“百度”等,右邊顯示好友上傳圖片,頂部是背景圖片。點擊左邊的寫信,跳轉(zhuǎn)到write頁面,可以寫郵件。右邊的現(xiàn)實的圖片可以進(jìn)行查看,與空間顯示的圖片差不多,也是可以由小圖片轉(zhuǎn)換成大圖片。當(dāng)鼠標(biāo)點擊到小圖標(biāo)X上時,圖標(biāo)就亮了,鼠標(biāo)
拿走,圖標(biāo)就暗了,
另外,我們運用Html還設(shè)計了一個hao123頁面,頁面中用到了text文本框、超鏈接、行列的布置,圖片的加載等等,做出來之后,整體感覺與hao123本來的頁面基本差不多。
三、Mysql數(shù)據(jù)庫
Mysql是一種小型的數(shù)據(jù)庫,它與Java的聯(lián)系十分密切,MySQL是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了Mysql作為網(wǎng)站數(shù)據(jù)庫,因此,網(wǎng)頁編寫大多數(shù)都是用Mysql。
-2-
武漢工程大學(xué)計算機科學(xué)與工程學(xué)院生產(chǎn)實習(xí)報告
Mysql是一個關(guān)聯(lián)數(shù)據(jù)庫,它將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大的倉庫內(nèi)。這樣就增加了速度并提高了靈活性。Mysql的Sql指得是“結(jié)構(gòu)化查詢語言”,Sql是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。同時,Mysql軟件也是一種“開放源碼”的軟件,意味著任何人都能使用和改變軟件。任何人都能從Internet下載Mysql軟件,而無需支付任何費用。如果愿意,你可以研究源碼并進(jìn)行恰當(dāng)?shù)母模詽M足你自己的需求。Mysql軟件采用了GPL(GNU通用公共許可證),定義了在不同情況下可以用軟件作的事和不可作的事。數(shù)據(jù)庫服務(wù)器具有快速、可靠和易于使用。
Mysql服務(wù)器還有一套實用的特性集合,在基準(zhǔn)測試主頁上,給出了Mysql服務(wù)器和其他數(shù)據(jù)庫管理器的比較結(jié)果。Mysql支持多種連接,包括TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫連接途徑,而我們此次實習(xí)用到的是JDBC數(shù)據(jù)庫連接方法,這一點在下面會講到。
此次實習(xí)我們主要學(xué)習(xí)了如何在Mysql數(shù)據(jù)庫中建立表格,如何執(zhí)行Sql語句等等。首先,打開Mysql編寫框,執(zhí)行語句showdatabases,即可查看Mysql中有哪些數(shù)據(jù)庫,運用create+數(shù)據(jù)庫名語句可建立想要的數(shù)據(jù)庫,運用use+數(shù)據(jù)庫名即可進(jìn)入對應(yīng)的數(shù)據(jù)庫。
進(jìn)入數(shù)據(jù)庫之后,就可以執(zhí)行數(shù)據(jù)庫中的增、刪、查、改等Sql語句了,運用createtable+表名(表中所需要的元素),這樣就可以建立一張表了,運用desc+表名就可以查看表,運用Sql語句“select*from+表名”就可以查看表中的所有數(shù)據(jù),運用“insertinto”語句可以向表中添加數(shù)據(jù);運用“update+表setWhere”可以更改表中指定的某項數(shù)據(jù);運用“delete+表where”語句可以刪除表中的某項數(shù)據(jù)
四、JDBC數(shù)據(jù)庫連接
Java中的JDBC,JDBC是JavaDataBaseConnectivity的縮寫,是一種用于執(zhí)行SQL語句的JavaAPI,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。JDBC提供了一種基準(zhǔn),據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠編寫數(shù)據(jù)庫應(yīng)用程序。
連接數(shù)據(jù)庫的方法有一個模板,代碼如下:publicclassDBManager{privatestaticfinalStringURL="jdbc:mysql://localhost:3306/test";privatestaticfinalStringUSER="root";privatestaticfinalStringPASSWORD="123";privatestaticConnectionconn=null;publicstaticConnectiongetConn(){try{if(conn==null){//注冊驅(qū)動Class.forName("com.mysql.jdbc.Driver");conn=DriverManager.getConnection(URL,USER,PASSWORD);}}catch(ClassNotFoundExceptione){e.printStackTrace();}catch(SQLExceptione){e.printStackTrace();}
returnconn;}}
以后運用數(shù)據(jù)庫連接基本上都是用這個模板,方便又有效,而且在其他地方連接數(shù)據(jù)
-3-
武漢工程大學(xué)計算機科學(xué)與工程學(xué)院生產(chǎn)實習(xí)報告
庫時都可以直接對其進(jìn)行調(diào)用。
通過JDBC我們可以連接到所用的數(shù)據(jù)庫mysql,可以從數(shù)據(jù)庫中提取數(shù)據(jù),也可以將所寫數(shù)據(jù)存入數(shù)據(jù)庫,用JDBC連接數(shù)據(jù)庫都是一個模式,基本上都是按照一個套路在寫,運用JDBC以及MyEclipse工具,我們也做出了一個小型的系統(tǒng)。
系統(tǒng)具有添加、查詢、刪除、修改、退出系統(tǒng)等功能,添加功能可以控制臺中所寫的信息添加到數(shù)據(jù)庫中,查詢信息則是根據(jù)id號從數(shù)據(jù)庫中查詢信息并將信息顯示出來,增加、刪除亦是如此,要做出這些功能首先都必須先連接到數(shù)據(jù)庫,這就要用到JDBC技術(shù),還要用到Connection方法,首先加載mysql數(shù)據(jù)庫的驅(qū)動,然后在創(chuàng)建連接,連接時要提供所用計算機的IP地址和端口號,以及mysql數(shù)據(jù)庫數(shù)據(jù)庫的用戶名和密碼。
連接好數(shù)據(jù)庫后,再根據(jù)所需要的功能編寫出對應(yīng)的方法,不同方法對應(yīng)不同的sql語句,例如添加信息(add)中用insert語句,刪除用delete語句,修改用update語句等等,然后主函數(shù)中提供對功能的選擇,不同的編號對應(yīng)不同的功能,并且根據(jù)所選的功能調(diào)用的方法。
五、JSP
JSP是JavaServerPages的縮寫,它是由SunMicrosystems公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中插入Java程序段(JavaScript)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。
Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實現(xiàn)建立動態(tài)網(wǎng)頁所需要的功能。
JSP頁面通常被編譯成為JavaServlets,這是一個標(biāo)準(zhǔn)的Java擴展。頁面開發(fā)人員能夠訪問全部的Java應(yīng)用環(huán)境,以利用Java技術(shù)的擴展性和可移植性。當(dāng)JSP頁面第一次被調(diào)用時,如果它還不存在,就會被編譯成為一個JavaServlets類,并且存儲在服務(wù)器的內(nèi)存中。這就使得在接下來的對該頁面的調(diào)用中,服務(wù)器會有非?斓捻憫(yīng)。
我們所做的學(xué)生信息管理系統(tǒng)也需要用到Mysql數(shù)據(jù)庫和JDBC技術(shù),所做的系統(tǒng)同樣可以添加、修改、查詢和刪除學(xué)生信息,不過這些功能是運用不同的頁面顯示,點擊不同的按鈕即可跳轉(zhuǎn)到所需的頁面,而后獲得想要的信息。每個功能都建立一個JSP頁面,其中主頁面是Index.jsp,在這個頁面中有兩個鏈接,分別轉(zhuǎn)到增加信息和瀏覽信息頁面,瀏覽信息頁面中還包括了對信息的修改和刪除。
例如,系統(tǒng)中瀏覽學(xué)生信息的頁面的代碼如下:
學(xué)號姓名性別年齡專業(yè)操作
${stu.sno}${stu.sname}
-4-
武漢工程大學(xué)計算機科學(xué)與工程學(xué)院生產(chǎn)實習(xí)報告
${stu.sex}${stu.age}${stu.major}
刪除修改
另外還用到了兩個Java類StuDAO和StuDTO,這兩個類中用到JDBC技術(shù),它們分別用以從數(shù)據(jù)庫中讀取數(shù)據(jù)和將數(shù)據(jù)存入到數(shù)據(jù)庫中。這兩個類中有很多方法,通過調(diào)用這些方法即可實現(xiàn)學(xué)生信息管理系統(tǒng)中的增、查、刪、改等功能!
六、Servlet
Servlet是一種服務(wù)器端的Java應(yīng)用程序,具有獨立于平臺和協(xié)議的特性,可以生成動態(tài)的Web頁面。它擔(dān)當(dāng)客戶請求(Web瀏覽器或其他HTTP客戶程序)與服務(wù)器響應(yīng)(HTTP服務(wù)器上的數(shù)據(jù)庫或應(yīng)用程序)的中間層。Servlet是位于Web服務(wù)器內(nèi)部的服務(wù)器端的Java應(yīng)用程序,與傳統(tǒng)的從命令行啟動的Java應(yīng)用程序不同,Servlet由Web服務(wù)器進(jìn)行加載,該Web服務(wù)器必須包含支持Servlet的Java虛擬機。
Servlet生成響應(yīng)內(nèi)容并將其傳給Server,響應(yīng)內(nèi)容動態(tài)生成,通常取決于客戶端的請求。service()方法可能激活其它方法以處理請求,如doGet()或doPost()或程序員自己開發(fā)的新的方法,用的比較普遍的是doPost()方法。舉例如下:
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{//1、獲取id
Stringsid=request.getParameter("id");intid=Integer.parseInt(sid);//2、根據(jù)id查詢到對應(yīng)的學(xué)生信息StuDAOsdao=newStuDAO();
StuDTOstu=sdao.queryStu(id);
//3、將stu傳遞到studentModify.jsp頁面顯示request.setAttribute("stu",stu);
request.getRequestDispatcher("studentModify.jsp").forward(request,response);
我們同樣是以學(xué)習(xí)建立學(xué)生信息管理系統(tǒng)為例來學(xué)習(xí)Servlet的,Servlet與JSP差不多,最主要的差別是JSP是實現(xiàn)普通靜態(tài)HTML和動態(tài)HTML混合編碼的技術(shù),Servlet則是web頁面和服務(wù)器之間的連接物,而這基本上沒什么區(qū)別。
在編寫學(xué)生信息管理系統(tǒng)的時候,只不過在昨天編寫的基礎(chǔ)上,將某些JSP文件運用Servlet表示,像那些只做顯示用的JSP頁面不做變化,而中間有調(diào)用StuDAO中的方法的JSP頁面,它們不做顯示用,而是要與數(shù)據(jù)庫聯(lián)系起來,像這些JSP頁面就可以轉(zhuǎn)換成相應(yīng)的Servlet,其中的代碼與JSP中的幾乎一樣,這樣處理之后,減少了頁面,不過功能沒有變化,更加方便了!
四、實習(xí)總結(jié)及分析
這次實習(xí)主要是學(xué)習(xí)JavaWeb開發(fā)方面的相關(guān)知識,主要的有JSP、Servlet、HTML,另外還有JDBC,Mysql數(shù)據(jù)庫等等。
首先是JSP,它是JavaWeb開發(fā)的基礎(chǔ),需要的頁面都是用JSP來建立的,它是一種
-5-
武漢工程大學(xué)計算機科學(xué)與工程學(xué)院生產(chǎn)實習(xí)報告
動態(tài)的網(wǎng)頁技術(shù),其中,可以顯示動態(tài)畫面以及動畫效果,在其中也可以編寫Java代碼,也可以加入html編寫語言,通過form表單中的action屬性可以實現(xiàn)頁面間的跳轉(zhuǎn),點擊不同的按鈕,可以跳轉(zhuǎn)到相應(yīng)的頁面,它是JavaWeb編程中必不可少的部分,Java語言開發(fā)的任何項目都要用到它;
其次是Servlet,它也是JavaWeb開發(fā)中必不可少的部分,Servlet是位于Web服務(wù)器內(nèi)部的服務(wù)器端的Java應(yīng)用程序,與傳統(tǒng)的從命令行啟動的Java應(yīng)用程序不同,Servlet由Web服務(wù)器進(jìn)行加載,該Web服務(wù)器必須包含支持Servlet的Java虛擬機。Servlet生成響應(yīng)內(nèi)容并將其傳給Server,響應(yīng)內(nèi)容動態(tài)生成,通常取決于客戶端的請求。service()方法可能激活其它方法以處理請求,如doGet()或doPost()或程序員自己開發(fā)的新的方法,用的比較普遍的是doPost()方法。
再次,是HTML語言,它也是必不可少的,經(jīng)常是嵌入在JSP中運用,它是一種靜態(tài)頁面開發(fā)技術(shù),其中用的最多的是運用HTML語言建立form表單,其中有行(tr)和列(td),另外它的標(biāo)簽也用的比較多,主要是利用它可以在頁面上任意移動,而且它的大小不會改變,還可以隱藏、變透明等等,再有就是其中的JavaScript用的也比較多,主要是寫一些function方法,用來限制一些信息;
最后,其他幾個方面也非常重要,像JDBC用于應(yīng)用程序和數(shù)據(jù)庫的連接,沒有這個方法就無法和數(shù)據(jù)庫連接起來,所以十分重要;Mysql數(shù)據(jù)庫也是Java項目開發(fā)中用到最多的一種數(shù)據(jù)庫,沒有數(shù)據(jù)庫就無法實現(xiàn)信息的增、刪、查、改,所以這些都是必不可少的。
五、實習(xí)體會
實習(xí)就這樣在不知不覺中就結(jié)束了,這次實習(xí)我們學(xué)到了很多知識,Java中的HTML、JSP、Servlet、JDBC等等,雖然這些知識我并沒有學(xué)得很精通、深邃,也只是掌握了一點皮毛而已,不過對于JAVA我們還是有了更深刻的了解,知道了Java的博大精深,此外我還學(xué)到了另外一種數(shù)據(jù)庫,Mysql數(shù)據(jù)庫,這是一個小型數(shù)據(jù)庫,與以前的SQLServer有相同也有不同,同時還學(xué)會了如何運用MyEclipse開發(fā)工具等等。
同時也學(xué)到了項目開發(fā)的思考角度和基本流程,提高了我們分析和解決問題的能力,鍛煉了我們實際動手操作能力,為以后的工作打下了堅實的基礎(chǔ)。
實習(xí)就快結(jié)束了,在此我要特別感謝幾位老師,,首先是帶領(lǐng)我們實習(xí)的劉黎志老師,對我們盡心盡力,經(jīng)常到實習(xí)基地監(jiān)督指導(dǎo)我們,感謝老師對于我們的關(guān)心和照顧;其次,就是要感謝帶領(lǐng)我們進(jìn)行第一階段學(xué)習(xí)的軟帝指導(dǎo)老師楊濤老師,他細(xì)心的教授我們知識,對沒聽懂的同學(xué)一一輔導(dǎo),在他的講解下我們學(xué)到了很多基礎(chǔ)知識;最后要感謝帶領(lǐng)我們做項目的馬文成老師,他的耐心講解讓我們感受到了做項目的樂趣,哪位同學(xué)有錯誤他就會一一幫助修改,真的非常感謝他們!
擴展閱讀:javaWeb實習(xí)報告
武漢理工大學(xué)華夏學(xué)院畢業(yè)實訓(xùn)報告實訓(xùn)題目java軟件開發(fā)系別:信息工程系專業(yè):計算機應(yīng)用學(xué)號:10225507214姓名:曾令平指導(dǎo)教師:黃啟荃提交日期:201*年5月30日武漢理工大學(xué)華夏學(xué)院計算機教研室制1、實習(xí)題目:java軟件開發(fā)2、實習(xí)目的:本人由于在達(dá)內(nèi)實訓(xùn)時,各項成績優(yōu)異,被北京木聯(lián)能科技有限公司錄用為java軟件開發(fā)實習(xí)生,作為即將步入社會的應(yīng)屆畢業(yè)生,我?guī)е鵁o比激動的心情和遠(yuǎn)大的理想,到北京木聯(lián)能科技有限公司實習(xí),實習(xí)目的如下:進(jìn)一步了解java開發(fā)的相關(guān)知識,掌握java開發(fā)的基本技術(shù),豐富java開發(fā)的實戰(zhàn)經(jīng)驗。學(xué)習(xí)SQL的基礎(chǔ)知識及正確的運用方法,和有用的相關(guān)技術(shù),提高自己的工作效率。通過實習(xí),鞏固大學(xué)所學(xué)專業(yè)的基本知識,提高分析、判斷和處理實際問題的能力,鍛煉自己的實際動手能力,增強自己的團隊協(xié)作意識,了解軟件開發(fā)的思考角度和主要流程。為畢業(yè)之后能夠更快地進(jìn)入工作狀態(tài)并且能夠更好的工作,打好一定的基礎(chǔ)。3、實習(xí)時間:201*年3月15號201*年6月6號4、實習(xí)地點:武漢達(dá)內(nèi)科技有限公司5、實習(xí)單位簡介武漢達(dá)內(nèi)科技有限公司(以下簡稱“公司”)位于武漢東湖開發(fā)區(qū)關(guān)山一路20號中國光谷創(chuàng)意產(chǎn)業(yè)基地2號樓4層。公司長期致力于培養(yǎng)IT精英,近年來成功的培養(yǎng)了無數(shù)的人才,公司師資都是工作相當(dāng)有經(jīng)驗的講師主講。達(dá)內(nèi)IT培訓(xùn)集團是中國高端IT培訓(xùn)行業(yè)領(lǐng)導(dǎo)品牌,致力于培養(yǎng)Java、C++、C#/.Net等方面的中高端軟件人才。由美國國際數(shù)據(jù)集團IDGVCPartners和集富亞洲JAFCOASIA投資,是國內(nèi)首家獲得國際風(fēng)險投資的IT培訓(xùn)機構(gòu),201*-201*連續(xù)3年入選德勤“高科技高成長中國50強、亞太地區(qū)500強”。達(dá)內(nèi)IT培訓(xùn)集團是Java之父Sun公司在中國境內(nèi)最大的Java培訓(xùn)合作伙伴、中關(guān)村科技園區(qū)管委會指定的“軟件人才培養(yǎng)示范基地”,是中國“先就業(yè)后付款”IT培訓(xùn)模式的創(chuàng)始者。經(jīng)過7年運營,達(dá)內(nèi)IT培訓(xùn)集團在大學(xué)生IT就業(yè)培訓(xùn)領(lǐng)域積累了豐富的專業(yè)經(jīng)驗與就業(yè)資源。以中關(guān)村科技園區(qū)為依托,達(dá)內(nèi)在中國軟件業(yè)發(fā)達(dá)城市北京、上海、廣州、深圳、大連、南京、武漢、杭州、西安、蘇州、成都、太原等20多個城市,建立了近30家培訓(xùn)中心,擁有2萬多平米的培訓(xùn)場地,在校生規(guī)模達(dá)5000人。已累計為IBM、微軟、摩托羅拉、華為、中軟、用友、Yahoo、阿里巴巴、TOM、新浪、搜狐、百度、聯(lián)想、神州數(shù)碼、大唐電信、亞信等知名IT企業(yè)培養(yǎng)輸送5萬多名中高級軟件人才,跨越電信、金融、電子政務(wù)(商務(wù))、電力、通訊、搜索、歐美外包及對日外包等十?dāng)?shù)個行業(yè)。目前,達(dá)內(nèi)集團擁有500多名員工,年產(chǎn)值接近2億元,運營規(guī)模已遠(yuǎn)遠(yuǎn)超出其它同類機構(gòu)。6、實習(xí)內(nèi)容6.1.公司采用的編程語言-java語言Java是由Sun微系統(tǒng)公司所發(fā)展出來的程序語言,它本身是一種對象導(dǎo)向(Object-Oriented)的程序語言。Java也號稱是能跨平臺使用的語言,這主要是因為Java本身被編譯之后,并不是直接產(chǎn)生可執(zhí)行的碼,而是產(chǎn)生一種中間碼叫作ByteCode,這種碼必需在透過Java的直譯器來解讀它,才能夠真正的被執(zhí)行,所以只要平臺上裝有這種Java的直譯器,就能解讀ByteCode也就能執(zhí)行Java編譯過的程序,故與Java程序是在那種平臺上被編譯的,就完全沒有干系了。Java寫出來的程序可分為兩類,分別是JavaApplet與一般的Application,而Application這一類就與一般的程序如C++的作用是比較類似的,是一個獨立可執(zhí)行的應(yīng)用程序,像HotJava是一個瀏覽器,且就是使用Java程序所發(fā)展出來的。最常見的Java程序包括應(yīng)用程序和applets。應(yīng)用程序是單獨的程序,諸如HotJava瀏覽器軟件就是用Java語言編寫的。Applets類似于應(yīng)用程序,但是它們不能單獨運行,Applets可以在支持Java的瀏覽器中運行。Applet主要是內(nèi)置于HTML網(wǎng)頁中,在瀏覽時發(fā)揮作用。Java的目標(biāo)是為了滿足在一個充滿各式各樣不同種機器,不同操作系統(tǒng)平臺的網(wǎng)絡(luò)環(huán)境中開發(fā)軟件。利用Java程序語言,可以在網(wǎng)頁中加入各式各樣的動態(tài)效果?梢苑派弦欢蝿赢嫞尤肼曇,也可以建立交互式網(wǎng)頁等。6.2.Java中的常用設(shè)計模式6.2.1工廠模式客戶類和工廠類分開。消費者任何時候需要某種產(chǎn)品,只需向工廠請求即可。消費者無須修改就可以接納新產(chǎn)品。缺點是當(dāng)產(chǎn)品修改時,工廠類也要做相應(yīng)的修改。如:如何創(chuàng)建及如何向客戶端提供。6.2.2建造模式將產(chǎn)品的內(nèi)部表象和產(chǎn)品的生成過程分割開來,從而使一個建造過程生成具有不同的內(nèi)部表象的產(chǎn)品對象。建造模式使得產(chǎn)品內(nèi)部表象可以獨立的變化,客戶不必知道產(chǎn)品內(nèi)部組成的細(xì)節(jié)。建造模式可以強制實行一種分步驟進(jìn)行的建造過程。6.2.3工廠方法模式核心工廠類不再負(fù)責(zé)所有產(chǎn)品的創(chuàng)建,而是將具體創(chuàng)建的工作交給子類去做,成為一個抽象工廠角色,僅負(fù)責(zé)給出具體工廠類必須實現(xiàn)的接口,而不接觸哪一個產(chǎn)品類應(yīng)當(dāng)被實例化這種細(xì)節(jié)。6.2.4原始模型模式通過給出一個原型對象來指明所要創(chuàng)建的對象的類型,然后用復(fù)制這個原型對象的方法創(chuàng)建出更多同類型的對象。原始模型模式允許動態(tài)的增加或減少產(chǎn)品類,產(chǎn)品類不需要非得有任何事先確定的等級結(jié)構(gòu),原始模型模式適用于任何的等級結(jié)構(gòu)。缺點是每一個類都必須配備一個克隆方法。6.2.5單例模式單例模式確保某一個類只有一個實例,而且自行實例化并向整個系統(tǒng)提供這個實例單例模式。單例模式只應(yīng)在有真正的“單一實例”的需求時才可使用。6.3.公司使用的數(shù)據(jù)庫-MySql數(shù)據(jù)庫6.3.1MySQL數(shù)據(jù)庫管理系統(tǒng)概述MySQL是最流行的開放源碼SQL數(shù)據(jù)庫管理系統(tǒng),它是由MySQLAB公司開發(fā)、發(fā)布并支持的。MySQLAB是由多名MySQL開發(fā)人創(chuàng)辦的一家商業(yè)公司。它是一家第二代開放源碼公司,結(jié)合了開放源碼價值取向、方法和成功的商業(yè)模型。數(shù)據(jù)庫是數(shù)據(jù)的結(jié)構(gòu)化集合。它可以是任何東西,從簡單的購物清單到畫展,或企業(yè)網(wǎng)絡(luò)中的海量信息。要想將數(shù)據(jù)添加到數(shù)據(jù)庫,或訪問、處理計算機數(shù)據(jù)庫中保存的數(shù)據(jù),需要使用數(shù)據(jù)庫管理系統(tǒng),如MySQL服務(wù)器。計算機是處理大量數(shù)據(jù)的理想工具,因此,數(shù)據(jù)庫管理系統(tǒng)在計算方面扮演著關(guān)鍵的中心角色,或是作為獨立的實用工具,或是作為其他應(yīng)用程序的組成部分。關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大的倉庫內(nèi)。這樣就增加了速度并提高了靈活性。MySQL的SQL指得是“結(jié)構(gòu)化查詢語言”。SQL是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言,它是由ANSI/ISOSQL標(biāo)準(zhǔn)定義的。SQL標(biāo)準(zhǔn)自1986年以來不斷演化發(fā)展,有數(shù)種版本。在本手冊中,“SQL-92”指得是1992年發(fā)布的標(biāo)準(zhǔn),“SQL:1999”指得是1999年發(fā)布的標(biāo)準(zhǔn),“SQL:201*”指得是標(biāo)準(zhǔn)的當(dāng)前版本。我們采用術(shù)語“SQL標(biāo)準(zhǔn)”標(biāo)示SQL標(biāo)準(zhǔn)的當(dāng)前版本。“開放源碼”意味著任何人都能使用和改變軟件。任何人都能從Internet下載MySQL軟件,而無需支付任何費用。如果愿意,你可以研究源碼并進(jìn)行恰當(dāng)?shù)母,以滿足你自己的需求。MySQL軟件采用了GPL(GNU通用公共許可證),,定義了在不同情況下可以用軟件作的事和不可作的事。MySQL服務(wù)器還有一套實用的特性集合,這些特性是通過與我們用戶的密切合作而開發(fā)的。在我們的基準(zhǔn)測試主頁上,給出了MySQL服務(wù)器和其他數(shù)據(jù)庫管理器的比較結(jié)果。MySQL服務(wù)器最初是為處理大型數(shù)據(jù)庫而開發(fā)的,與已有的解決方案相比,它的速度更快,多年以來,它已成功用于眾多要求很高的生產(chǎn)環(huán)境。盡管MySQL始終在不斷發(fā)展,但目前MySQL服務(wù)器已能提供豐富和有用的功能。它具有良好的連通性、速度和安全性,這使的MySQL十分適合于訪問Internet上的數(shù)據(jù)庫。6.3.2MySQL的歷史我們最初的出發(fā)點是,使用mSQL來連接我們的表,這類表采用了我們的快速低層面(ISAM)子程序。然而,經(jīng)過一些測試后,我們得出結(jié)論,mSQL的速度或靈活性不足以滿足我們的要求。其結(jié)果是,為我們的數(shù)據(jù)庫提供了新的SQL接口,但API接口與mSQL的幾乎一樣。設(shè)計該API的目的在于,允許將為mSQL編寫的第三方代碼方便地移植到MySQL。MySQL名稱的起源不明。10多年來,我們的基本目錄以及大量庫和工具均采用了前綴“my”。不過,共同創(chuàng)辦人MontyWidenius的女兒名字也叫“My”。時至今日,MySQL名稱的起源仍是一個迷,即使對我們也一樣。MySQLDolphin的名稱為“Sakila”,它是由MySQLAB公司的創(chuàng)辦人從用戶在“Dolphin命名”比賽中提供的眾多建議中選定的。該名稱是由來自非洲斯威士蘭的開放源碼軟件開發(fā)人AmbroseTwebaze提出的。根據(jù)Ambrose的說法,按斯威士蘭的本地語言,女性化名稱Sakila源自SiSwati。Sakila也是坦桑尼亞、Arusha地區(qū)的一個鎮(zhèn)的鎮(zhèn)名,靠近Ambrose的母國烏干達(dá)。6.3.3MySQL穩(wěn)定性最初的代碼可回溯至20世紀(jì)80年代初。它提供了穩(wěn)定的編碼基數(shù),最初存儲引擎使用的ISAM表格式仍保持向后兼容性。在MySQLAB公司的前身TcX,自1996年中期以來,MySQL代碼在多個項目中工作良好,未出現(xiàn)任何問題。當(dāng)MySQL數(shù)據(jù)庫軟件首次向更廣泛的公眾發(fā)布時,我們的用戶很快發(fā)現(xiàn)了一些未經(jīng)測試的代碼段。自那以后,盡管每個新版本具有很多新的特性,但每次新發(fā)布的版本均存在少量的移植性問題。每次發(fā)布的MySQL服務(wù)器均是可用的。僅當(dāng)用戶嘗試源自“灰色區(qū)域”的代碼時才會出現(xiàn)問題。當(dāng)然,新用戶不了解“灰色區(qū)域”是什么。因此,在本節(jié)中,我們介紹了目前已知的這類區(qū)域。本節(jié)所作的介紹主要針對MySQL服務(wù)器3.23版和更高版本。在最新的版本中,更正了所有已知和通報的缺陷,但“缺陷”一節(jié)所列的除外,這類缺陷與設(shè)計有關(guān)。MySQL服務(wù)器采用了多層設(shè)計和獨立模塊。在此列出了一些較新的模塊,并指明了它們的測試情況。6.3.4MySQL表最大能達(dá)到多少MySQL3.22限制的表大小為4GB。由于在MySQL3.23中使用了MyISAM存儲引擎,最大表尺寸增加到了65536TB(25671字節(jié))。由于允許的表尺寸更大,MySQL數(shù)據(jù)庫的最大有效表尺寸通常是由操作系統(tǒng)對文件大小的限制決定的,而不是由MySQL內(nèi)部限制決定的。InnoDB存儲引擎將InnoDB表保存在一個表空間內(nèi),該表空間可由數(shù)個文件創(chuàng)建。這樣,表的大小就能超過單獨文件的最大容量。表空間可包括原始磁盤分區(qū),從而使得很大的表成為可能。表空間的最大容量為64TB。在下面的表格中,列出了一些關(guān)于操作系統(tǒng)文件大小限制的示例。這僅是初步指南,并不是最終的。操作系統(tǒng)Linux2.2-Intel32-bitLinux2.4+Solaris9/10NetWarew/NSSfilesystemwin32w/FAT/FAT32win32w/NTFSMacOSXw/HFS+文件大小限制2GB(LFS:4GB)(usingext3filesystem)4TB16TB8TB2GB/4GB2TB(可能更大)2TB在Linux2.2平臺下,通過使用對ext2文件系統(tǒng)的大文件支持(LFS)補丁,可以獲得超過2GB的MyISAM表。在Linux2.4平臺下,存在針對ReiserFS的補丁,可支持大文件(高達(dá)2TB)。目前發(fā)布的大多數(shù)Linux版本均基于2.4內(nèi)核,包含所有所需的LFS補丁。使用JFS和XFS,petabyte(千兆兆)和更大的文件也能在Linux上實現(xiàn)。然而,最大可用的文件容量仍取決于多項因素,其中之一就是用于存儲MySQL表的文件系統(tǒng)。另外,Windows用戶請注意:FAT和VFAT(FAT32)不適合MySQL的生產(chǎn)使用。應(yīng)使用NTFS。在默認(rèn)情況下,MySQL創(chuàng)建的MyISAM表允許的最大尺寸為4GB。你可以使用SHOWTABLESTATUS語句或myisamchk-dvtbl_name檢查表的最大尺寸。如果需要使用大于4GB的MyISAM表(而且你的操作系統(tǒng)支持大文件),可使用允許AVG_ROW_LENGTH和MAX_ROWS選項的CREATETABLE語句。創(chuàng)建了表后,也可以使用ALTERTABLE更改這些選項,以增加表的最大允許容量。處理MyISAM表文件大小的其他方式:如果你的大表是只讀的,可使用myisampack壓縮它。myisampack通常能將表壓縮至少50%,因而,從結(jié)果上看,可獲得更大的表。此外,myisampack還能將多個表合并為1個表。MySQL包含一個允許處理MyISAM表集合的MERGE庫,這類MyISAM表具有與單個MERGE表相同的結(jié)構(gòu)。6.3.5java與SQL的應(yīng)用Java語言是編寫數(shù)據(jù)庫應(yīng)用程序的杰出語言之一,它提供了方便訪問數(shù)據(jù)的技術(shù)。利用Java語言中的JDBC技術(shù),用戶能方便地開發(fā)出基于Web網(wǎng)頁的數(shù)據(jù)庫訪問程序,從而擴充網(wǎng)絡(luò)應(yīng)用功能。JDBC(JavaDatabaseConnectivity,Java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的JavaAPI,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一的訪問接口。JDBC由一組用Java語言編寫的類與接口組成,通過調(diào)用這些類和接口所提供的方法,用戶能夠以一致的方式連接多種不同的數(shù)據(jù)庫系統(tǒng)(如Access、SQLServer201*、Oracle、Sybase等),進(jìn)而可使用標(biāo)準(zhǔn)的SQL語言來存取數(shù)據(jù)庫中的數(shù)據(jù),而不必再為每一種數(shù)據(jù)庫系統(tǒng)編寫不同的Java程序代碼。SQLServer201*是微軟公司新一代的數(shù)據(jù)庫產(chǎn)品,它是在SQLServer7.0建立的堅固基礎(chǔ)上產(chǎn)生的,并對SQLServer7.0做了大量擴展。SQLServer201*通過高端硬件平臺以及最新網(wǎng)絡(luò)和存儲技術(shù)的支持,可為最大的Web站點和企業(yè)級應(yīng)用提供可擴展性和高可靠性。Java通過JDBC、ODBC接口訪問數(shù)據(jù)庫。6.3.6JDBC、ODBC接口Java應(yīng)用程序通過JDBCAPI(java.sql)與數(shù)據(jù)庫連接,而實際的動作則是由JDBC驅(qū)動程序管理器(JDBCDriverManager)通過JDBC驅(qū)動程序與數(shù)據(jù)庫系統(tǒng)進(jìn)行連接。ODBC(OpenDataBaseConnectivity)即開放式的接口,它為用戶提供了一個訪問關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)接口,對于不同的數(shù)據(jù)庫它提供了一套統(tǒng)一的API;可以使應(yīng)用程序通過API訪問任何提供了ODBC驅(qū)動程序的數(shù)據(jù)庫,而目前所有的關(guān)系數(shù)據(jù)庫都提供了ODBC驅(qū)動程序,所以O(shè)DBC已經(jīng)成為數(shù)據(jù)庫訪問的業(yè)界標(biāo)準(zhǔn),并得到了廣泛應(yīng)用。JDBC-ODBC橋是一種JDBC驅(qū)動程序,它通過將JDBC操作轉(zhuǎn)換為ODBC操作來實現(xiàn)的。利用JDBC-ODBC橋可以使程序開發(fā)人員不需要學(xué)習(xí)更多的知識就可以編寫JDBC應(yīng)用程序,并能夠充分利用現(xiàn)有的ODBC數(shù)據(jù)源。JDBC-ODBC橋驅(qū)動程序可以使JDBC能夠訪問幾乎所有類型的數(shù)據(jù)庫。7.Servlet技術(shù)7.1什么是Servlet?一個servlet就是Java編程語言中的一個類,它被用來擴展服務(wù)器的性能,服務(wù)器上駐留著可以通過“請求-響應(yīng)”編程模型來訪問的應(yīng)用程序。雖然servlet可以對任何類型的請求產(chǎn)生響應(yīng),但通常只用來擴展Web服務(wù)器的應(yīng)用程序。JavaServlet技術(shù)為這些應(yīng)用程序定義了一個特定于HTTP的servlet類。javax.servlet和javax.servlet.http包為編寫servlet提供了接口和類。所有的servlet都必須實現(xiàn)Servlet接口,該接口定義了生命周期方法。7.2Servlet的生命周期一個servlet的生命周期由部署servlet的容器來控制。當(dāng)一個請求映射到一個servlet時,該容器執(zhí)行下列步驟。(1)如果一個servlet的實例并不存在,Web容器a.加載servlet類。b.創(chuàng)建一個servlet類的實例。c.調(diào)用init初始化servlet實例。該初始化過程將在初始化servlet中講述。(2)調(diào)用service方法,傳遞一個請求和響應(yīng)對象。服務(wù)方法將在編寫服務(wù)方法中講述。如果該容器要移除這個servlet,可調(diào)用servlet的destroy方法來結(jié)束該servlet。結(jié)束過程將在結(jié)束Serlvet中討論。7.3控制對共享資源的并發(fā)訪問在多線程的服務(wù)器中,可能出現(xiàn)對共享資源的并發(fā)訪問。除了作用域?qū)ο髮傩酝,共享資源還包括存儲器中的數(shù)據(jù)(如實例和類變量)、外部對象(如文件)、數(shù)據(jù)庫連接和網(wǎng)絡(luò)連接。并發(fā)訪問可出現(xiàn)在多個情況下。多個Web組件訪問存儲在Web上下文中的對象。多個Web組件訪問存儲在會話中的對象。一個Web組件中的多個線程訪問實例變量。一個Web容器一般為每個請求創(chuàng)建一個線程來處理。如果用戶確認(rèn)一個servlet實例每次只處理一個請求,servlet就能實現(xiàn)SingleThreadModel接口。如果servlet實現(xiàn)了這個接口,用戶就能確保servlet的服務(wù)方法中不可能有兩個線程并發(fā)執(zhí)行。Web容器可通過同步訪問一個servlet的單獨實例、或者通過維護一個Web組件池為每個實例調(diào)用一個新的請求來實現(xiàn)。這個接口并不能防止Web組件訪問共享資源(如靜態(tài)類變量、外部對象)導(dǎo)致的同步問題。8.JSP頁面8.1JSP2.0介紹新的JSP規(guī)范版本包括新的用于提升程序員工作效率功能,主要有:AnExpressionLanguage(EL)允許開發(fā)者創(chuàng)建Velocity-樣式templates(amongotherthings).更快更簡單的創(chuàng)建新標(biāo)簽的方法。Hello,${param.visitor}MVC模式為了把表現(xiàn)層presentation從請求處理requestprocessing和數(shù)據(jù)存儲datastorage中分離開來,SUN公司推薦在JSP文件中使用一種“模型-視圖-控制器”Model-view-controller模式。規(guī)范的SERVLET或者分離的JSP文件用于處理請求。當(dāng)請求處理完后,控制權(quán)交給一個只作為創(chuàng)建輸出作用的JSP頁。有幾種平臺都基于服務(wù)于網(wǎng)絡(luò)層的模-視圖-控件模式(比如Struts和Springframework)。8.2JSP技術(shù)的強勢(1)一次編寫,到處運行。在這一點上Java比PHP更出色,除了系統(tǒng)之外,代碼不用做任何更改。(2)系統(tǒng)的多平臺支持;旧峡梢栽谒衅脚_上的任意環(huán)境中開發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴展。相比ASP/PHP的局限性是顯而易見的。(3)強大的可伸縮性。從只有一個小的Jar文件就可以運行Servlet/JSP,到由多臺服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺Application進(jìn)行事務(wù)處理,消息處理,一臺服務(wù)器到無數(shù)臺服務(wù)器,Java顯示了一個巨大的生命力。(4)多樣化和功能強大的開發(fā)工具支持。這一點與ASP很像,Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費得到,并且其中許多已經(jīng)可以順利的運行于多種平臺之下。8.3JSP技術(shù)的弱勢(1)與ASP一樣,Java的一些優(yōu)勢正是它致命的問題所在。正是由于為了跨平臺的功能,為了極度的伸縮能力,所以極大的增加了產(chǎn)品的復(fù)雜性。(2)Java的運行速度是用class常駐內(nèi)存來完成的,所以它在一些情況下所使用的內(nèi)存比起用戶數(shù)量來說確實是“最低性能價格比”了。從另一方面,它還需要硬盤空間來儲存一系列的.java文件和.class文件,以及對應(yīng)的版本文件。8.4JSP內(nèi)置對象8.4.1request對象:該對象封裝了用戶提交的信息,通過調(diào)用該對象相應(yīng)的方法可以獲取封裝的信息,即使用該對象可以獲取用戶提交信息。8.4.2response對象:對客戶的請求做出動態(tài)的響應(yīng),向客戶端發(fā)送數(shù)據(jù)。8.4.3session對象:session對象是一個JSP內(nèi)置對象,它在第一個JSP頁面被裝載時自動創(chuàng)建,完成會話期管理。從一個客戶打開瀏覽器并連接到服務(wù)器開始,到客戶關(guān)閉瀏覽器離開這個服務(wù)器結(jié)束,被稱為一個會話。當(dāng)一個客戶訪問一個服務(wù)器時,可能會在這個服務(wù)器的幾個頁面之間反復(fù)連接,反復(fù)刷新一個頁面,服務(wù)器應(yīng)當(dāng)通過某種辦法知道這是同一個客戶,這就需要session對象。8.4.5application對象:服務(wù)器啟動后就產(chǎn)生了這個application對象,當(dāng)客戶在所訪問的網(wǎng)站的各個頁面之間瀏覽時,這個application對象都是同一個,直到服務(wù)器關(guān)閉。但是與session不同的是,所有客戶的application對象都是同一個,即所有客戶共享這個內(nèi)置的application對象。8.4.5out對象:out對象是一個輸出流,用來向客戶端輸出數(shù)據(jù)。out對象用于各種數(shù)據(jù)的輸出。8.5JSP的技術(shù)方法8.5.1將內(nèi)容的生成和顯示進(jìn)行分離用JSP技術(shù),Web頁面開發(fā)人員可以使用HTML或者XML標(biāo)識來設(shè)計和格式化最終頁面,并使用JSP標(biāo)識或者小腳本來生成頁面上的動態(tài)內(nèi)容(內(nèi)容是根據(jù)請求變化的,例如請求賬戶信息或者特定的一瓶酒的價格等)。生成內(nèi)容的邏輯被封裝在標(biāo)識和JavaBeans組件中,并且捆綁在腳本中,所有的腳本在服務(wù)器端運行。由于核心邏輯被封裝在標(biāo)識和JavaBeans中,所以Web管理人員和頁面設(shè)計者,能夠編輯和使用JSP頁面,而不影響內(nèi)容的生成。8.5.2適應(yīng)平臺幾乎所有平臺都支持Java,JSP+JavaBeans幾乎可以在所有平臺下通行無阻。從一個平臺移植到另外一個平臺,JSP和JavaBeans甚至不用重新編譯,因為Java字節(jié)碼都是標(biāo)準(zhǔn)的與平臺無關(guān)的。8.5.3數(shù)據(jù)庫連接Java中連接數(shù)據(jù)庫的技術(shù)是JDBC,Java程序通過JDBC驅(qū)動程序與數(shù)據(jù)庫相連,執(zhí)行查詢、提取數(shù)據(jù)等操作。此外,通過開發(fā)標(biāo)識庫,JSP技術(shù)可以進(jìn)一步擴展。第三方開發(fā)人員和其他人員可以為常用功能創(chuàng)建自己的標(biāo)識庫。這使得Web頁面開發(fā)人員能夠使用熟悉的工具和如同標(biāo)識一樣的執(zhí)行特定功能的構(gòu)件來進(jìn)行工作。JSP技術(shù)很容易整合到多種應(yīng)用體系結(jié)構(gòu)中,以利用現(xiàn)存的工具和技巧,并且能擴展到支持企業(yè)級的分布式應(yīng)用中。作為采用Java技術(shù)家族的一部分,以及Java2(企業(yè)版體系結(jié)構(gòu))的一個組成部分,JSP技術(shù)能夠支持高度復(fù)雜的基于Web的應(yīng)用。由于JSP頁面的內(nèi)置腳本語言是基于Java的,而且所有的JSP頁面都被編譯成為JavaServlets,所以JSP頁面具有Java技術(shù)的所有好處,包括健壯的存儲管理和安全性。作為Java平臺的一部分,JSP擁有Java編程語言“一次編寫,各處運行”的特點。9、實訓(xùn)的收獲與體會初次涉及Java領(lǐng)域,感覺到Java入門是好像沒有C,C++入門快,工具也沒有什么TurboC,VisualC++好用,什么JAVA_HOME,CLASSPATH,虛擬機等概念都是初次基礎(chǔ),旁邊的人都很少用Java的。感覺Java就是做Applet的。慢慢的知道了,開始知道Java博大精深。讓我不可思議的是JAVA2,JDK,J2SE,J2EE,J2ME等新名詞在自己的腦海里蔓延。慢慢的自己知道了JCP組織是制定Java相關(guān)規(guī)范的發(fā)源地,于是訂閱了一份郵件列表。真是好東西啊,定期有Java的最新動向,所以Java的動態(tài)盡收眼里,搭起Java開發(fā)環(huán)境后,記得剛開始還是用UltraEdit編輯并編譯的慢慢的改用JCreator了,最開始買了一套2本書,還不錯。對于入門來說足夠了。慢慢的知道是一本好書,后來才知道,有了Java經(jīng)驗后,看這本書特別過癮,所以現(xiàn)在還經(jīng)常翻翻。周而復(fù)始的看,效果特別好。慢慢的知道了Oreilly公司出的圖書不錯,不知道什么時候,要開始干項目了,以前從書上看到的東西,慢慢的在項目中有了很好的機會去溫習(xí),慢慢的有了感覺,開始主要是用Swing,開發(fā)桌面系統(tǒng),放置一個按鈕怎么也放不好,后來才知道有一個布局管理器。慢慢的開始涉及到數(shù)據(jù)庫訪問,JDBC。隨后Java規(guī)范了。最開始下載的規(guī)范是JDBCSpecification,很多概念一目了然,尤其是DATABASE的事務(wù)性控制,自己對于她的理解慢慢的有了較為深入的了解。對于開發(fā)C/S結(jié)構(gòu),比如,Swing+JDBC,開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng),讓我學(xué)會開發(fā)兩層結(jié)構(gòu)的應(yīng)用系統(tǒng)。也不知道什么時候要開始開發(fā)一個網(wǎng)站,基于Linux+JSP+JavaBean+Oracle的系統(tǒng)。很是有意思。為什么這么說呢?因為不同于Swing+JDBC的開發(fā)模式,系統(tǒng)之間多了一層;同時,很多開發(fā)技術(shù)和面向左面系統(tǒng)不一樣,比如分頁技術(shù)。完成項目后,自己對于Java的很多方面都比較了解了。開始思考一個問題,J2EE是什么東西?。我們學(xué)習(xí)Java大概有3個方向,第一,桌面系統(tǒng),包括C/S結(jié)構(gòu);第二,J2ME,面向無限領(lǐng)域,很有潛力的家伙,看看中國的手機用戶就知道了。第三,面向企業(yè)應(yīng)用、計算的平臺,J2EE.在痛苦的抉擇后,我選擇J2EE..分享J2EE給我?guī)淼目鞓。學(xué)到現(xiàn)在,最大的感覺,就是:簡單就是美,美就是Java.不會有學(xué)MFC的痛苦,也不會有去分析STL的艱辛,網(wǎng)路應(yīng)用上一點也不遜色于C++。Servlet過濾器,XML方面較為全面的知識,知道了J2EE整個框架中各種技術(shù)的實際應(yīng)用。慢慢的,開始研究WebLogic配置好的PetStore(也是Sun公司的)。慢慢的分析兩者的不同之處。開始對J2EESpecification有了很好的感覺。因為J2EESpecification本身是很嚴(yán)肅的,但PetStore給出了活力。在反復(fù)的學(xué)習(xí)中,我明白了J2EE構(gòu)架的7080%。新的問題又出來了,實際企業(yè)中會如何建構(gòu)一個J2EE系統(tǒng)呢?帶著這個問題,我開始分析CoreJ2EEPatterns,這本書。同時,也有EJBDesignPatterns。慢慢的,開始知道了J2EE的魅力所在,知道了J2EE為什么會在企業(yè)中得到較為好的認(rèn)可。大家都知道,設(shè)計模式一詞,在公司上班,你們的老板會看你的代碼嗎?會贊賞你的DP很好嗎,我想很少。在完成你的工作進(jìn)度之余,加班,加班,再加班,我想你沒有更多的時間去分析研究DP.但,J2EE框架不一樣,她內(nèi)置了很多優(yōu)秀的設(shè)計模式,我們在設(shè)計開發(fā)、構(gòu)架一個J2EE系統(tǒng)中用到了很多設(shè)計模式。比如,MVC,EJB中封裝的DAO設(shè)計模式。構(gòu)架J2E系統(tǒng)用SessionFaade,MessageFaade設(shè)計模式也不會太困難。這也是后來J2EE吸引我的地方。慢慢的我知道了,作為一個J2EE開發(fā)者,我們要掌握其中的核心內(nèi)容。我個人認(rèn)為,3方面很重要。實施EJB系統(tǒng)常用的架構(gòu)、設(shè)計模式,比如sessionfaade、messagefaade、DTO等。J2EE系統(tǒng)構(gòu)架中常用的模式。UML->EJB,EJB->UML相互映射。通過實訓(xùn),我自身發(fā)生了重大的轉(zhuǎn)變,我相信我會在JAVA開發(fā)這條路上走的更長更遠(yuǎn)。
友情提示:本文中關(guān)于《JavaWeb實習(xí)報告》給出的范例僅供您參考拓展思維使用,JavaWeb實習(xí)報告:該篇文章建議您自主創(chuàng)作。
來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時刪除。