王牌对王牌第一季综艺,黄视频在线观看网站,世界一级毛片,成人黄色免费看

薈聚奇文、博采眾長、見賢思齊
當(dāng)前位置:公文素材庫 > 報(bào)告體會(huì) > 工作報(bào)告 > JavaWeb實(shí)習(xí)報(bào)告

JavaWeb實(shí)習(xí)報(bào)告

網(wǎng)站:公文素材庫 | 時(shí)間:2019-05-29 07:18:23 | 移動(dòng)端:JavaWeb實(shí)習(xí)報(bào)告

JavaWeb實(shí)習(xí)報(bào)告

武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院生產(chǎn)實(shí)習(xí)報(bào)告

JavaWeb實(shí)習(xí)報(bào)告

一、實(shí)習(xí)目的與任務(wù)

為了鍛煉我們的實(shí)踐動(dòng)手能力,提高我們分析問題、解決問題的能力,培養(yǎng)我們的工作意識(shí)和團(tuán)隊(duì)合作的意識(shí),了解軟件開發(fā)的過程和基本流程,以便于幫助我們能夠在大四畢業(yè)時(shí)可找到一份客觀的工作,我們?cè)诖笏膭傞_學(xué)就開始了生產(chǎn)實(shí)習(xí)。

這次實(shí)習(xí)的主要任務(wù)是JavaWeb軟件開發(fā),學(xué)習(xí)Java開發(fā)中比較典型且經(jīng)常用到的幾個(gè)知識(shí),其中包括Jsp、Servlet、Html、JDBC等等,另外,Java開發(fā)中也必須要用到數(shù)據(jù)庫,因此實(shí)習(xí)中還加入了Mysql數(shù)據(jù)庫的學(xué)習(xí)。掌握了這些基本知識(shí)之后,就開始真正的項(xiàng)目開發(fā),而且此次我們所要開發(fā)的項(xiàng)目是有關(guān)博客頁面的項(xiàng)目,并完成老師指定的功能。

二、實(shí)習(xí)地點(diǎn)

重慶足下科技有限公司

三、實(shí)習(xí)內(nèi)容和要求

我們這次實(shí)習(xí),在校外也就是軟帝公司總共是十天,開始幾天基本上是每天學(xué)習(xí)一個(gè)方面的內(nèi)容,大概學(xué)習(xí)了六天其中包括Jsp、Servlet、Html、JDBC、Mysql等等,剩下幾天就是項(xiàng)目時(shí)間,做出一個(gè)博客開發(fā)的項(xiàng)目。大致內(nèi)容如下:

一、Java語言簡介

Java語言Java是由Sun微系統(tǒng)公司所發(fā)展出來的程序語言,它是一種面向地向的語言,Java也號(hào)稱是能跨平臺(tái)使用的語言,這主要是因?yàn)镴ava本身被編譯之后,并不是直接產(chǎn)生可執(zhí)行的代碼,而是產(chǎn)生一種中間碼叫作ByteCode,這種代碼必需在透過Java的直譯器來解讀它,才能夠真正的被執(zhí)行,所以只要平臺(tái)上裝有這種Java的直譯器,就能解讀ByteCode也就能執(zhí)行Java編譯過的程序,故與Java程序是在那種平臺(tái)上被編譯的,就完全沒有干系了。

Java寫出來的程序可分為兩類,分別是JavaApplet與一般的Application,而Application這一類就與一般的程序如C++的作用是比較類似的,是一個(gè)獨(dú)立可執(zhí)行的應(yīng)用程序,像HotJava是一個(gè)瀏覽器,且就是使用Java程序所發(fā)展出來的。最常見的Java程序包括應(yīng)用程序和applets。應(yīng)用程序是單獨(dú)的程序,諸如HotJava瀏覽器軟件就是用Java語言編寫的。

Applets類似于應(yīng)用程序,但是它們不能單獨(dú)運(yùn)行,Applets可以在支持Java的瀏覽器中運(yùn)行。Applet主要是內(nèi)置于HTML網(wǎng)頁中,在瀏覽時(shí)發(fā)揮作用。

Java的目標(biāo)是為了滿足在一個(gè)充滿各式各樣不同種機(jī)器,不同操作系統(tǒng)平臺(tái)的網(wǎng)絡(luò)環(huán)境中開發(fā)軟件。利用Java程序語言,可以進(jìn)行網(wǎng)頁開發(fā),其中包括靜態(tài)語言開發(fā)與動(dòng)態(tài)網(wǎng)頁開發(fā),可以在網(wǎng)頁中加入各式各樣的動(dòng)態(tài)效果,可以放上一段動(dòng)畫,加入聲音,也可以建立交互式網(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表示提交的動(dòng)作,也就是提交到那個(gè)頁面,可表示為Action=“”;Method屬性表示提交的方法,一般為設(shè)為post;在Form表單域中添加table表,table中的屬性只有很多,常用的有width、height、align、colspan

武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院生產(chǎn)實(shí)習(xí)報(bào)告

等等,當(dāng)然,有表就會(huì)有行和列,其中行用tr表示,列用td表示,行與列的屬性值與table差不多。

在行與列中還可以添加一些按鈕,鏈接等等,添加按鈕是用表示,添加鏈接則用來添加,另外,還有一個(gè)比較有用的標(biāo)簽,可以畫出一個(gè)框,里面可以添加所需要的東西。

運(yùn)用Html我們開發(fā)了一個(gè)e-mail郵件發(fā)送系統(tǒng),這個(gè)界面主要用到了七個(gè)htm文件,有主頁面main.html,其中主頁面分為上部、左部和右部,分別用top.html、left.html、right.html文件來表示。另外還增加了登錄頁面(login.html)、注冊(cè)頁面(regist.html)以及書寫郵件的頁面(write.html),由這些html文件共同實(shí)現(xiàn)了e-mail的基本界面。

首先進(jìn)入login登錄界面,輸入用戶名和密碼,而且用戶名和密碼有一定的限制,輸入信息符合要求后方可進(jìn)入主頁面,另外,在登錄界面的用戶名后還有一個(gè)超鏈接“注冊(cè)”,點(diǎn)擊“注冊(cè)”就可以進(jìn)入注冊(cè)的頁面,注冊(cè)頁面上有五行,包括用戶名、密碼、重復(fù)密碼以及上傳頭像,另外還有兩個(gè)按鈕“提交注冊(cè)”和“重置”,這樣即可完成注冊(cè)。

登陸界面中還用到了JavaScript,用以給出用戶名和密碼的限制條件,其中有一個(gè)function方法,用到的代碼如下:

functioncheckInfo(){varname=document.getElementById("username").value;varpass=document.getElementById("pass").value;if(name==""){alert("請(qǐng)輸入用戶名!");returnfalse;}else{if(pass==""){alert("請(qǐng)輸入密碼!");returnfalse;}else{returntrue;}}}

以后若要用到限制條件,都是運(yùn)用與此類似的方法,這段代碼可以說是一個(gè)模板。進(jìn)入到主頁面后,可以看到三個(gè)部分,左邊的部分用鏈接列出幾項(xiàng),包括“寫信”、“收信”、“聯(lián)系人”、“百度”等,右邊顯示好友上傳圖片,頂部是背景圖片。點(diǎn)擊左邊的寫信,跳轉(zhuǎn)到write頁面,可以寫郵件。右邊的現(xiàn)實(shí)的圖片可以進(jìn)行查看,與空間顯示的圖片差不多,也是可以由小圖片轉(zhuǎn)換成大圖片。當(dāng)鼠標(biāo)點(diǎn)擊到小圖標(biāo)X上時(shí),圖標(biāo)就亮了,鼠標(biāo)

拿走,圖標(biāo)就暗了,

另外,我們運(yùn)用Html還設(shè)計(jì)了一個(gè)hao123頁面,頁面中用到了text文本框、超鏈接、行列的布置,圖片的加載等等,做出來之后,整體感覺與hao123本來的頁面基本差不多。

三、Mysql數(shù)據(jù)庫

Mysql是一種小型的數(shù)據(jù)庫,它與Java的聯(lián)系十分密切,MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了Mysql作為網(wǎng)站數(shù)據(jù)庫,因此,網(wǎng)頁編寫大多數(shù)都是用Mysql。

-2-

武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院生產(chǎn)實(shí)習(xí)報(bào)告

Mysql是一個(gè)關(guān)聯(lián)數(shù)據(jù)庫,它將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大的倉庫內(nèi)。這樣就增加了速度并提高了靈活性。Mysql的Sql指得是“結(jié)構(gòu)化查詢語言”,Sql是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。同時(shí),Mysql軟件也是一種“開放源碼”的軟件,意味著任何人都能使用和改變軟件。任何人都能從Internet下載Mysql軟件,而無需支付任何費(fèi)用。如果愿意,你可以研究源碼并進(jìn)行恰當(dāng)?shù)母,以滿足你自己的需求。Mysql軟件采用了GPL(GNU通用公共許可證),定義了在不同情況下可以用軟件作的事和不可作的事。數(shù)據(jù)庫服務(wù)器具有快速、可靠和易于使用。

Mysql服務(wù)器還有一套實(shí)用的特性集合,在基準(zhǔn)測試主頁上,給出了Mysql服務(wù)器和其他數(shù)據(jù)庫管理器的比較結(jié)果。Mysql支持多種連接,包括TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫連接途徑,而我們此次實(shí)習(xí)用到的是JDBC數(shù)據(jù)庫連接方法,這一點(diǎn)在下面會(huì)講到。

此次實(shí)習(xí)我們主要學(xué)習(xí)了如何在Mysql數(shù)據(jù)庫中建立表格,如何執(zhí)行Sql語句等等。首先,打開Mysql編寫框,執(zhí)行語句showdatabases,即可查看Mysql中有哪些數(shù)據(jù)庫,運(yùn)用create+數(shù)據(jù)庫名語句可建立想要的數(shù)據(jù)庫,運(yùn)用use+數(shù)據(jù)庫名即可進(jìn)入對(duì)應(yīng)的數(shù)據(jù)庫。

進(jìn)入數(shù)據(jù)庫之后,就可以執(zhí)行數(shù)據(jù)庫中的增、刪、查、改等Sql語句了,運(yùn)用createtable+表名(表中所需要的元素),這樣就可以建立一張表了,運(yùn)用desc+表名就可以查看表,運(yùn)用Sql語句“select*from+表名”就可以查看表中的所有數(shù)據(jù),運(yùn)用“insertinto”語句可以向表中添加數(shù)據(jù);運(yùn)用“update+表setWhere”可以更改表中指定的某項(xiàng)數(shù)據(jù);運(yùn)用“delete+表where”語句可以刪除表中的某項(xiàng)數(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)建更高級(jí)的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠編寫數(shù)據(jù)庫應(yīng)用程序。

連接數(shù)據(jù)庫的方法有一個(gè)模板,代碼如下:publicclassDBManager{privatestaticfinalStringURL="jdbc:mysql://localhost:3306/test";privatestaticfinalStringUSER="root";privatestaticfinalStringPASSWORD="123";privatestaticConnectionconn=null;publicstaticConnectiongetConn(){try{if(conn==null){//注冊(cè)驅(qū)動(dòng)Class.forName("com.mysql.jdbc.Driver");conn=DriverManager.getConnection(URL,USER,PASSWORD);}}catch(ClassNotFoundExceptione){e.printStackTrace();}catch(SQLExceptione){e.printStackTrace();}

returnconn;}}

以后運(yùn)用數(shù)據(jù)庫連接基本上都是用這個(gè)模板,方便又有效,而且在其他地方連接數(shù)據(jù)

-3-

武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院生產(chǎn)實(shí)習(xí)報(bào)告

庫時(shí)都可以直接對(duì)其進(jìn)行調(diào)用。

通過JDBC我們可以連接到所用的數(shù)據(jù)庫mysql,可以從數(shù)據(jù)庫中提取數(shù)據(jù),也可以將所寫數(shù)據(jù)存入數(shù)據(jù)庫,用JDBC連接數(shù)據(jù)庫都是一個(gè)模式,基本上都是按照一個(gè)套路在寫,運(yùn)用JDBC以及MyEclipse工具,我們也做出了一個(gè)小型的系統(tǒng)。

系統(tǒng)具有添加、查詢、刪除、修改、退出系統(tǒng)等功能,添加功能可以控制臺(tái)中所寫的信息添加到數(shù)據(jù)庫中,查詢信息則是根據(jù)id號(hào)從數(shù)據(jù)庫中查詢信息并將信息顯示出來,增加、刪除亦是如此,要做出這些功能首先都必須先連接到數(shù)據(jù)庫,這就要用到JDBC技術(shù),還要用到Connection方法,首先加載mysql數(shù)據(jù)庫的驅(qū)動(dòng),然后在創(chuàng)建連接,連接時(shí)要提供所用計(jì)算機(jī)的IP地址和端口號(hào),以及mysql數(shù)據(jù)庫數(shù)據(jù)庫的用戶名和密碼。

連接好數(shù)據(jù)庫后,再根據(jù)所需要的功能編寫出對(duì)應(yīng)的方法,不同方法對(duì)應(yīng)不同的sql語句,例如添加信息(add)中用insert語句,刪除用delete語句,修改用update語句等等,然后主函數(shù)中提供對(duì)功能的選擇,不同的編號(hào)對(duì)應(yīng)不同的功能,并且根據(jù)所選的功能調(diào)用的方法。

五、JSP

JSP是JavaServerPages的縮寫,它是由SunMicrosystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中插入Java程序段(JavaScript)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。

Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁所需要的功能。

JSP頁面通常被編譯成為JavaServlets,這是一個(gè)標(biāo)準(zhǔn)的Java擴(kuò)展。頁面開發(fā)人員能夠訪問全部的Java應(yīng)用環(huán)境,以利用Java技術(shù)的擴(kuò)展性和可移植性。當(dāng)JSP頁面第一次被調(diào)用時(shí),如果它還不存在,就會(huì)被編譯成為一個(gè)JavaServlets類,并且存儲(chǔ)在服務(wù)器的內(nèi)存中。這就使得在接下來的對(duì)該頁面的調(diào)用中,服務(wù)器會(huì)有非常快的響應(yīng)。

我們所做的學(xué)生信息管理系統(tǒng)也需要用到Mysql數(shù)據(jù)庫和JDBC技術(shù),所做的系統(tǒng)同樣可以添加、修改、查詢和刪除學(xué)生信息,不過這些功能是運(yùn)用不同的頁面顯示,點(diǎn)擊不同的按鈕即可跳轉(zhuǎn)到所需的頁面,而后獲得想要的信息。每個(gè)功能都建立一個(gè)JSP頁面,其中主頁面是Index.jsp,在這個(gè)頁面中有兩個(gè)鏈接,分別轉(zhuǎn)到增加信息和瀏覽信息頁面,瀏覽信息頁面中還包括了對(duì)信息的修改和刪除。

例如,系統(tǒng)中瀏覽學(xué)生信息的頁面的代碼如下:

學(xué)號(hào)姓名性別年齡專業(yè)操作

${stu.sno}${stu.sname}

-4-

武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院生產(chǎn)實(shí)習(xí)報(bào)告

${stu.sex}${stu.age}${stu.major}

刪除修改

另外還用到了兩個(gè)Java類StuDAO和StuDTO,這兩個(gè)類中用到JDBC技術(shù),它們分別用以從數(shù)據(jù)庫中讀取數(shù)據(jù)和將數(shù)據(jù)存入到數(shù)據(jù)庫中。這兩個(gè)類中有很多方法,通過調(diào)用這些方法即可實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)中的增、查、刪、改等功能!

六、Servlet

Servlet是一種服務(wù)器端的Java應(yīng)用程序,具有獨(dú)立于平臺(tái)和協(xié)議的特性,可以生成動(dòng)態(tài)的Web頁面。它擔(dān)當(dāng)客戶請(qǐng)求(Web瀏覽器或其他HTTP客戶程序)與服務(wù)器響應(yīng)(HTTP服務(wù)器上的數(shù)據(jù)庫或應(yīng)用程序)的中間層。Servlet是位于Web服務(wù)器內(nèi)部的服務(wù)器端的Java應(yīng)用程序,與傳統(tǒng)的從命令行啟動(dòng)的Java應(yīng)用程序不同,Servlet由Web服務(wù)器進(jìn)行加載,該Web服務(wù)器必須包含支持Servlet的Java虛擬機(jī)。

Servlet生成響應(yīng)內(nèi)容并將其傳給Server,響應(yīng)內(nèi)容動(dòng)態(tài)生成,通常取決于客戶端的請(qǐng)求。service()方法可能激活其它方法以處理請(qǐng)求,如doGet()或doPost()或程序員自己開發(fā)的新的方法,用的比較普遍的是doPost()方法。舉例如下:

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{//1、獲取id

Stringsid=request.getParameter("id");intid=Integer.parseInt(sid);//2、根據(jù)id查詢到對(duì)應(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是實(shí)現(xiàn)普通靜態(tài)HTML和動(dòng)態(tài)HTML混合編碼的技術(shù),Servlet則是web頁面和服務(wù)器之間的連接物,而這基本上沒什么區(qū)別。

在編寫學(xué)生信息管理系統(tǒng)的時(shí)候,只不過在昨天編寫的基礎(chǔ)上,將某些JSP文件運(yùn)用Servlet表示,像那些只做顯示用的JSP頁面不做變化,而中間有調(diào)用StuDAO中的方法的JSP頁面,它們不做顯示用,而是要與數(shù)據(jù)庫聯(lián)系起來,像這些JSP頁面就可以轉(zhuǎn)換成相應(yīng)的Servlet,其中的代碼與JSP中的幾乎一樣,這樣處理之后,減少了頁面,不過功能沒有變化,更加方便了!

四、實(shí)習(xí)總結(jié)及分析

這次實(shí)習(xí)主要是學(xué)習(xí)JavaWeb開發(fā)方面的相關(guān)知識(shí),主要的有JSP、Servlet、HTML,另外還有JDBC,Mysql數(shù)據(jù)庫等等。

首先是JSP,它是JavaWeb開發(fā)的基礎(chǔ),需要的頁面都是用JSP來建立的,它是一種

-5-

武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院生產(chǎn)實(shí)習(xí)報(bào)告

動(dòng)態(tài)的網(wǎng)頁技術(shù),其中,可以顯示動(dòng)態(tài)畫面以及動(dòng)畫效果,在其中也可以編寫Java代碼,也可以加入html編寫語言,通過form表單中的action屬性可以實(shí)現(xiàn)頁面間的跳轉(zhuǎn),點(diǎn)擊不同的按鈕,可以跳轉(zhuǎn)到相應(yīng)的頁面,它是JavaWeb編程中必不可少的部分,Java語言開發(fā)的任何項(xiàng)目都要用到它;

其次是Servlet,它也是JavaWeb開發(fā)中必不可少的部分,Servlet是位于Web服務(wù)器內(nèi)部的服務(wù)器端的Java應(yīng)用程序,與傳統(tǒng)的從命令行啟動(dòng)的Java應(yīng)用程序不同,Servlet由Web服務(wù)器進(jìn)行加載,該Web服務(wù)器必須包含支持Servlet的Java虛擬機(jī)。Servlet生成響應(yīng)內(nèi)容并將其傳給Server,響應(yīng)內(nèi)容動(dòng)態(tài)生成,通常取決于客戶端的請(qǐng)求。service()方法可能激活其它方法以處理請(qǐng)求,如doGet()或doPost()或程序員自己開發(fā)的新的方法,用的比較普遍的是doPost()方法。

再次,是HTML語言,它也是必不可少的,經(jīng)常是嵌入在JSP中運(yùn)用,它是一種靜態(tài)頁面開發(fā)技術(shù),其中用的最多的是運(yùn)用HTML語言建立form表單,其中有行(tr)和列(td),另外它的標(biāo)簽也用的比較多,主要是利用它可以在頁面上任意移動(dòng),而且它的大小不會(huì)改變,還可以隱藏、變透明等等,再有就是其中的JavaScript用的也比較多,主要是寫一些function方法,用來限制一些信息;

最后,其他幾個(gè)方面也非常重要,像JDBC用于應(yīng)用程序和數(shù)據(jù)庫的連接,沒有這個(gè)方法就無法和數(shù)據(jù)庫連接起來,所以十分重要;Mysql數(shù)據(jù)庫也是Java項(xiàng)目開發(fā)中用到最多的一種數(shù)據(jù)庫,沒有數(shù)據(jù)庫就無法實(shí)現(xiàn)信息的增、刪、查、改,所以這些都是必不可少的。

五、實(shí)習(xí)體會(huì)

實(shí)習(xí)就這樣在不知不覺中就結(jié)束了,這次實(shí)習(xí)我們學(xué)到了很多知識(shí),Java中的HTML、JSP、Servlet、JDBC等等,雖然這些知識(shí)我并沒有學(xué)得很精通、深邃,也只是掌握了一點(diǎn)皮毛而已,不過對(duì)于JAVA我們還是有了更深刻的了解,知道了Java的博大精深,此外我還學(xué)到了另外一種數(shù)據(jù)庫,Mysql數(shù)據(jù)庫,這是一個(gè)小型數(shù)據(jù)庫,與以前的SQLServer有相同也有不同,同時(shí)還學(xué)會(huì)了如何運(yùn)用MyEclipse開發(fā)工具等等。

同時(shí)也學(xué)到了項(xiàng)目開發(fā)的思考角度和基本流程,提高了我們分析和解決問題的能力,鍛煉了我們實(shí)際動(dòng)手操作能力,為以后的工作打下了堅(jiān)實(shí)的基礎(chǔ)。

實(shí)習(xí)就快結(jié)束了,在此我要特別感謝幾位老師,,首先是帶領(lǐng)我們實(shí)習(xí)的劉黎志老師,對(duì)我們盡心盡力,經(jīng)常到實(shí)習(xí)基地監(jiān)督指導(dǎo)我們,感謝老師對(duì)于我們的關(guān)心和照顧;其次,就是要感謝帶領(lǐng)我們進(jìn)行第一階段學(xué)習(xí)的軟帝指導(dǎo)老師楊濤老師,他細(xì)心的教授我們知識(shí),對(duì)沒聽懂的同學(xué)一一輔導(dǎo),在他的講解下我們學(xué)到了很多基礎(chǔ)知識(shí);最后要感謝帶領(lǐng)我們做項(xiàng)目的馬文成老師,他的耐心講解讓我們感受到了做項(xiàng)目的樂趣,哪位同學(xué)有錯(cuò)誤他就會(huì)一一幫助修改,真的非常感謝他們!

擴(kuò)展閱讀:javaWeb實(shí)習(xí)報(bào)告

武漢理工大學(xué)華夏學(xué)院畢業(yè)實(shí)訓(xùn)報(bào)告實(shí)訓(xùn)題目java軟件開發(fā)系別:信息工程系專業(yè):計(jì)算機(jī)應(yīng)用學(xué)號(hào):10225507214姓名:曾令平指導(dǎo)教師:黃啟荃提交日期:201*年5月30日武漢理工大學(xué)華夏學(xué)院計(jì)算機(jī)教研室制1、實(shí)習(xí)題目:java軟件開發(fā)2、實(shí)習(xí)目的:本人由于在達(dá)內(nèi)實(shí)訓(xùn)時(shí),各項(xiàng)成績優(yōu)異,被北京木聯(lián)能科技有限公司錄用為java軟件開發(fā)實(shí)習(xí)生,作為即將步入社會(huì)的應(yīng)屆畢業(yè)生,我?guī)е鵁o比激動(dòng)的心情和遠(yuǎn)大的理想,到北京木聯(lián)能科技有限公司實(shí)習(xí),實(shí)習(xí)目的如下:進(jìn)一步了解java開發(fā)的相關(guān)知識(shí),掌握java開發(fā)的基本技術(shù),豐富java開發(fā)的實(shí)戰(zhàn)經(jīng)驗(yàn)。學(xué)習(xí)SQL的基礎(chǔ)知識(shí)及正確的運(yùn)用方法,和有用的相關(guān)技術(shù),提高自己的工作效率。通過實(shí)習(xí),鞏固大學(xué)所學(xué)專業(yè)的基本知識(shí),提高分析、判斷和處理實(shí)際問題的能力,鍛煉自己的實(shí)際動(dòng)手能力,增強(qiáng)自己的團(tuán)隊(duì)協(xié)作意識(shí),了解軟件開發(fā)的思考角度和主要流程。為畢業(yè)之后能夠更快地進(jìn)入工作狀態(tài)并且能夠更好的工作,打好一定的基礎(chǔ)。3、實(shí)習(xí)時(shí)間:201*年3月15號(hào)201*年6月6號(hào)4、實(shí)習(xí)地點(diǎn):武漢達(dá)內(nèi)科技有限公司5、實(shí)習(xí)單位簡介武漢達(dá)內(nèi)科技有限公司(以下簡稱“公司”)位于武漢東湖開發(fā)區(qū)關(guān)山一路20號(hào)中國光谷創(chuàng)意產(chǎn)業(yè)基地2號(hào)樓4層。公司長期致力于培養(yǎng)IT精英,近年來成功的培養(yǎng)了無數(shù)的人才,公司師資都是工作相當(dāng)有經(jīng)驗(yàn)的講師主講。達(dá)內(nèi)IT培訓(xùn)集團(tuán)是中國高端IT培訓(xùn)行業(yè)領(lǐng)導(dǎo)品牌,致力于培養(yǎng)Java、C++、C#/.Net等方面的中高端軟件人才。由美國國際數(shù)據(jù)集團(tuán)IDGVCPartners和集富亞洲JAFCOASIA投資,是國內(nèi)首家獲得國際風(fēng)險(xiǎn)投資的IT培訓(xùn)機(jī)構(gòu),201*-201*連續(xù)3年入選德勤“高科技高成長中國50強(qiáng)、亞太地區(qū)500強(qiáng)”。達(dá)內(nèi)IT培訓(xùn)集團(tuán)是Java之父Sun公司在中國境內(nèi)最大的Java培訓(xùn)合作伙伴、中關(guān)村科技園區(qū)管委會(huì)指定的“軟件人才培養(yǎng)示范基地”,是中國“先就業(yè)后付款”IT培訓(xùn)模式的創(chuàng)始者。經(jīng)過7年運(yùn)營,達(dá)內(nèi)IT培訓(xùn)集團(tuán)在大學(xué)生IT就業(yè)培訓(xùn)領(lǐng)域積累了豐富的專業(yè)經(jīng)驗(yàn)與就業(yè)資源。以中關(guān)村科技園區(qū)為依托,達(dá)內(nèi)在中國軟件業(yè)發(fā)達(dá)城市北京、上海、廣州、深圳、大連、南京、武漢、杭州、西安、蘇州、成都、太原等20多個(gè)城市,建立了近30家培訓(xùn)中心,擁有2萬多平米的培訓(xùn)場地,在校生規(guī)模達(dá)5000人。已累計(jì)為IBM、微軟、摩托羅拉、華為、中軟、用友、Yahoo、阿里巴巴、TOM、新浪、搜狐、百度、聯(lián)想、神州數(shù)碼、大唐電信、亞信等知名IT企業(yè)培養(yǎng)輸送5萬多名中高級(jí)軟件人才,跨越電信、金融、電子政務(wù)(商務(wù))、電力、通訊、搜索、歐美外包及對(duì)日外包等十?dāng)?shù)個(gè)行業(yè)。目前,達(dá)內(nèi)集團(tuán)擁有500多名員工,年產(chǎn)值接近2億元,運(yùn)營規(guī)模已遠(yuǎn)遠(yuǎn)超出其它同類機(jī)構(gòu)。6、實(shí)習(xí)內(nèi)容6.1.公司采用的編程語言-java語言Java是由Sun微系統(tǒng)公司所發(fā)展出來的程序語言,它本身是一種對(duì)象導(dǎo)向(Object-Oriented)的程序語言。Java也號(hào)稱是能跨平臺(tái)使用的語言,這主要是因?yàn)镴ava本身被編譯之后,并不是直接產(chǎn)生可執(zhí)行的碼,而是產(chǎn)生一種中間碼叫作ByteCode,這種碼必需在透過Java的直譯器來解讀它,才能夠真正的被執(zhí)行,所以只要平臺(tái)上裝有這種Java的直譯器,就能解讀ByteCode也就能執(zhí)行Java編譯過的程序,故與Java程序是在那種平臺(tái)上被編譯的,就完全沒有干系了。Java寫出來的程序可分為兩類,分別是JavaApplet與一般的Application,而Application這一類就與一般的程序如C++的作用是比較類似的,是一個(gè)獨(dú)立可執(zhí)行的應(yīng)用程序,像HotJava是一個(gè)瀏覽器,且就是使用Java程序所發(fā)展出來的。最常見的Java程序包括應(yīng)用程序和applets。應(yīng)用程序是單獨(dú)的程序,諸如HotJava瀏覽器軟件就是用Java語言編寫的。Applets類似于應(yīng)用程序,但是它們不能單獨(dú)運(yùn)行,Applets可以在支持Java的瀏覽器中運(yùn)行。Applet主要是內(nèi)置于HTML網(wǎng)頁中,在瀏覽時(shí)發(fā)揮作用。Java的目標(biāo)是為了滿足在一個(gè)充滿各式各樣不同種機(jī)器,不同操作系統(tǒng)平臺(tái)的網(wǎng)絡(luò)環(huán)境中開發(fā)軟件。利用Java程序語言,可以在網(wǎng)頁中加入各式各樣的動(dòng)態(tài)效果?梢苑派弦欢蝿(dòng)畫,加入聲音,也可以建立交互式網(wǎng)頁等。6.2.Java中的常用設(shè)計(jì)模式6.2.1工廠模式客戶類和工廠類分開。消費(fèi)者任何時(shí)候需要某種產(chǎn)品,只需向工廠請(qǐng)求即可。消費(fèi)者無須修改就可以接納新產(chǎn)品。缺點(diǎn)是當(dāng)產(chǎn)品修改時(shí),工廠類也要做相應(yīng)的修改。如:如何創(chuàng)建及如何向客戶端提供。6.2.2建造模式將產(chǎn)品的內(nèi)部表象和產(chǎn)品的生成過程分割開來,從而使一個(gè)建造過程生成具有不同的內(nèi)部表象的產(chǎn)品對(duì)象。建造模式使得產(chǎn)品內(nèi)部表象可以獨(dú)立的變化,客戶不必知道產(chǎn)品內(nèi)部組成的細(xì)節(jié)。建造模式可以強(qiáng)制實(shí)行一種分步驟進(jìn)行的建造過程。6.2.3工廠方法模式核心工廠類不再負(fù)責(zé)所有產(chǎn)品的創(chuàng)建,而是將具體創(chuàng)建的工作交給子類去做,成為一個(gè)抽象工廠角色,僅負(fù)責(zé)給出具體工廠類必須實(shí)現(xiàn)的接口,而不接觸哪一個(gè)產(chǎn)品類應(yīng)當(dāng)被實(shí)例化這種細(xì)節(jié)。6.2.4原始模型模式通過給出一個(gè)原型對(duì)象來指明所要?jiǎng)?chuàng)建的對(duì)象的類型,然后用復(fù)制這個(gè)原型對(duì)象的方法創(chuàng)建出更多同類型的對(duì)象。原始模型模式允許動(dòng)態(tài)的增加或減少產(chǎn)品類,產(chǎn)品類不需要非得有任何事先確定的等級(jí)結(jié)構(gòu),原始模型模式適用于任何的等級(jí)結(jié)構(gòu)。缺點(diǎn)是每一個(gè)類都必須配備一個(gè)克隆方法。6.2.5單例模式單例模式確保某一個(gè)類只有一個(gè)實(shí)例,而且自行實(shí)例化并向整個(gè)系統(tǒng)提供這個(gè)實(shí)例單例模式。單例模式只應(yīng)在有真正的“單一實(shí)例”的需求時(shí)才可使用。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é)合了開放源碼價(jià)值取向、方法和成功的商業(yè)模型。數(shù)據(jù)庫是數(shù)據(jù)的結(jié)構(gòu)化集合。它可以是任何東西,從簡單的購物清單到畫展,或企業(yè)網(wǎng)絡(luò)中的海量信息。要想將數(shù)據(jù)添加到數(shù)據(jù)庫,或訪問、處理計(jì)算機(jī)數(shù)據(jù)庫中保存的數(shù)據(jù),需要使用數(shù)據(jù)庫管理系統(tǒng),如MySQL服務(wù)器。計(jì)算機(jī)是處理大量數(shù)據(jù)的理想工具,因此,數(shù)據(jù)庫管理系統(tǒng)在計(jì)算方面扮演著關(guān)鍵的中心角色,或是作為獨(dú)立的實(shí)用工具,或是作為其他應(yīng)用程序的組成部分。關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大的倉庫內(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ù)種版本。在本手冊(cè)中,“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軟件,而無需支付任何費(fèi)用。如果愿意,你可以研究源碼并進(jìn)行恰當(dāng)?shù)母,以滿足你自己的需求。MySQL軟件采用了GPL(GNU通用公共許可證),,定義了在不同情況下可以用軟件作的事和不可作的事。MySQL服務(wù)器還有一套實(shí)用的特性集合,這些特性是通過與我們用戶的密切合作而開發(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ā)點(diǎn)是,使用mSQL來連接我們的表,這類表采用了我們的快速低層面(ISAM)子程序。然而,經(jīng)過一些測試后,我們得出結(jié)論,mSQL的速度或靈活性不足以滿足我們的要求。其結(jié)果是,為我們的數(shù)據(jù)庫提供了新的SQL接口,但API接口與mSQL的幾乎一樣。設(shè)計(jì)該API的目的在于,允許將為mSQL編寫的第三方代碼方便地移植到MySQL。MySQL名稱的起源不明。10多年來,我們的基本目錄以及大量庫和工具均采用了前綴“my”。不過,共同創(chuàng)辦人MontyWidenius的女兒名字也叫“My”。時(shí)至今日,MySQL名稱的起源仍是一個(gè)迷,即使對(duì)我們也一樣。MySQLDolphin的名稱為“Sakila”,它是由MySQLAB公司的創(chuàng)辦人從用戶在“Dolphin命名”比賽中提供的眾多建議中選定的。該名稱是由來自非洲斯威士蘭的開放源碼軟件開發(fā)人AmbroseTwebaze提出的。根據(jù)Ambrose的說法,按斯威士蘭的本地語言,女性化名稱Sakila源自SiSwati。Sakila也是坦桑尼亞、Arusha地區(qū)的一個(gè)鎮(zhèn)的鎮(zhèn)名,靠近Ambrose的母國烏干達(dá)。6.3.3MySQL穩(wěn)定性最初的代碼可回溯至20世紀(jì)80年代初。它提供了穩(wěn)定的編碼基數(shù),最初存儲(chǔ)引擎使用的ISAM表格式仍保持向后兼容性。在MySQLAB公司的前身TcX,自1996年中期以來,MySQL代碼在多個(gè)項(xiàng)目中工作良好,未出現(xiàn)任何問題。當(dāng)MySQL數(shù)據(jù)庫軟件首次向更廣泛的公眾發(fā)布時(shí),我們的用戶很快發(fā)現(xiàn)了一些未經(jīng)測試的代碼段。自那以后,盡管每個(gè)新版本具有很多新的特性,但每次新發(fā)布的版本均存在少量的移植性問題。每次發(fā)布的MySQL服務(wù)器均是可用的。僅當(dāng)用戶嘗試源自“灰色區(qū)域”的代碼時(shí)才會(huì)出現(xiàn)問題。當(dāng)然,新用戶不了解“灰色區(qū)域”是什么。因此,在本節(jié)中,我們介紹了目前已知的這類區(qū)域。本節(jié)所作的介紹主要針對(duì)MySQL服務(wù)器3.23版和更高版本。在最新的版本中,更正了所有已知和通報(bào)的缺陷,但“缺陷”一節(jié)所列的除外,這類缺陷與設(shè)計(jì)有關(guān)。MySQL服務(wù)器采用了多層設(shè)計(jì)和獨(dú)立模塊。在此列出了一些較新的模塊,并指明了它們的測試情況。6.3.4MySQL表最大能達(dá)到多少M(fèi)ySQL3.22限制的表大小為4GB。由于在MySQL3.23中使用了MyISAM存儲(chǔ)引擎,最大表尺寸增加到了65536TB(25671字節(jié))。由于允許的表尺寸更大,MySQL數(shù)據(jù)庫的最大有效表尺寸通常是由操作系統(tǒng)對(duì)文件大小的限制決定的,而不是由MySQL內(nèi)部限制決定的。InnoDB存儲(chǔ)引擎將InnoDB表保存在一個(gè)表空間內(nèi),該表空間可由數(shù)個(gè)文件創(chuàng)建。這樣,表的大小就能超過單獨(dú)文件的最大容量。表空間可包括原始磁盤分區(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平臺(tái)下,通過使用對(duì)ext2文件系統(tǒng)的大文件支持(LFS)補(bǔ)丁,可以獲得超過2GB的MyISAM表。在Linux2.4平臺(tái)下,存在針對(duì)ReiserFS的補(bǔ)丁,可支持大文件(高達(dá)2TB)。目前發(fā)布的大多數(shù)Linux版本均基于2.4內(nèi)核,包含所有所需的LFS補(bǔ)丁。使用JFS和XFS,petabyte(千兆兆)和更大的文件也能在Linux上實(shí)現(xiàn)。然而,最大可用的文件容量仍取決于多項(xiàng)因素,其中之一就是用于存儲(chǔ)MySQL表的文件系統(tǒng)。另外,Windows用戶請(qǐng)注意: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選項(xiàng)的CREATETABLE語句。創(chuàng)建了表后,也可以使用ALTERTABLE更改這些選項(xiàng),以增加表的最大允許容量。處理MyISAM表文件大小的其他方式:如果你的大表是只讀的,可使用myisampack壓縮它。myisampack通常能將表壓縮至少50%,因而,從結(jié)果上看,可獲得更大的表。此外,myisampack還能將多個(gè)表合并為1個(gè)表。MySQL包含一個(gè)允許處理MyISAM表集合的MERGE庫,這類MyISAM表具有與單個(gè)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ù)庫訪問程序,從而擴(kuò)充網(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建立的堅(jiān)固基礎(chǔ)上產(chǎn)生的,并對(duì)SQLServer7.0做了大量擴(kuò)展。SQLServer201*通過高端硬件平臺(tái)以及最新網(wǎng)絡(luò)和存儲(chǔ)技術(shù)的支持,可為最大的Web站點(diǎn)和企業(yè)級(jí)應(yīng)用提供可擴(kuò)展性和高可靠性。Java通過JDBC、ODBC接口訪問數(shù)據(jù)庫。6.3.6JDBC、ODBC接口Java應(yīng)用程序通過JDBCAPI(java.sql)與數(shù)據(jù)庫連接,而實(shí)際的動(dòng)作則是由JDBC驅(qū)動(dòng)程序管理器(JDBCDriverManager)通過JDBC驅(qū)動(dòng)程序與數(shù)據(jù)庫系統(tǒng)進(jìn)行連接。ODBC(OpenDataBaseConnectivity)即開放式的接口,它為用戶提供了一個(gè)訪問關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)接口,對(duì)于不同的數(shù)據(jù)庫它提供了一套統(tǒng)一的API;可以使應(yīng)用程序通過API訪問任何提供了ODBC驅(qū)動(dòng)程序的數(shù)據(jù)庫,而目前所有的關(guān)系數(shù)據(jù)庫都提供了ODBC驅(qū)動(dòng)程序,所以O(shè)DBC已經(jīng)成為數(shù)據(jù)庫訪問的業(yè)界標(biāo)準(zhǔn),并得到了廣泛應(yīng)用。JDBC-ODBC橋是一種JDBC驅(qū)動(dòng)程序,它通過將JDBC操作轉(zhuǎn)換為ODBC操作來實(shí)現(xiàn)的。利用JDBC-ODBC橋可以使程序開發(fā)人員不需要學(xué)習(xí)更多的知識(shí)就可以編寫JDBC應(yīng)用程序,并能夠充分利用現(xiàn)有的ODBC數(shù)據(jù)源。JDBC-ODBC橋驅(qū)動(dòng)程序可以使JDBC能夠訪問幾乎所有類型的數(shù)據(jù)庫。7.Servlet技術(shù)7.1什么是Servlet?一個(gè)servlet就是Java編程語言中的一個(gè)類,它被用來擴(kuò)展服務(wù)器的性能,服務(wù)器上駐留著可以通過“請(qǐng)求-響應(yīng)”編程模型來訪問的應(yīng)用程序。雖然servlet可以對(duì)任何類型的請(qǐng)求產(chǎn)生響應(yīng),但通常只用來擴(kuò)展Web服務(wù)器的應(yīng)用程序。JavaServlet技術(shù)為這些應(yīng)用程序定義了一個(gè)特定于HTTP的servlet類。javax.servlet和javax.servlet.http包為編寫servlet提供了接口和類。所有的servlet都必須實(shí)現(xiàn)Servlet接口,該接口定義了生命周期方法。7.2Servlet的生命周期一個(gè)servlet的生命周期由部署servlet的容器來控制。當(dāng)一個(gè)請(qǐng)求映射到一個(gè)servlet時(shí),該容器執(zhí)行下列步驟。(1)如果一個(gè)servlet的實(shí)例并不存在,Web容器a.加載servlet類。b.創(chuàng)建一個(gè)servlet類的實(shí)例。c.調(diào)用init初始化servlet實(shí)例。該初始化過程將在初始化servlet中講述。(2)調(diào)用service方法,傳遞一個(gè)請(qǐng)求和響應(yīng)對(duì)象。服務(wù)方法將在編寫服務(wù)方法中講述。如果該容器要移除這個(gè)servlet,可調(diào)用servlet的destroy方法來結(jié)束該servlet。結(jié)束過程將在結(jié)束Serlvet中討論。7.3控制對(duì)共享資源的并發(fā)訪問在多線程的服務(wù)器中,可能出現(xiàn)對(duì)共享資源的并發(fā)訪問。除了作用域?qū)ο髮傩酝,共享資源還包括存儲(chǔ)器中的數(shù)據(jù)(如實(shí)例和類變量)、外部對(duì)象(如文件)、數(shù)據(jù)庫連接和網(wǎng)絡(luò)連接。并發(fā)訪問可出現(xiàn)在多個(gè)情況下。多個(gè)Web組件訪問存儲(chǔ)在Web上下文中的對(duì)象。多個(gè)Web組件訪問存儲(chǔ)在會(huì)話中的對(duì)象。一個(gè)Web組件中的多個(gè)線程訪問實(shí)例變量。一個(gè)Web容器一般為每個(gè)請(qǐng)求創(chuàng)建一個(gè)線程來處理。如果用戶確認(rèn)一個(gè)servlet實(shí)例每次只處理一個(gè)請(qǐng)求,servlet就能實(shí)現(xiàn)SingleThreadModel接口。如果servlet實(shí)現(xiàn)了這個(gè)接口,用戶就能確保servlet的服務(wù)方法中不可能有兩個(gè)線程并發(fā)執(zhí)行。Web容器可通過同步訪問一個(gè)servlet的單獨(dú)實(shí)例、或者通過維護(hù)一個(gè)Web組件池為每個(gè)實(shí)例調(diào)用一個(gè)新的請(qǐng)求來實(shí)現(xiàn)。這個(gè)接口并不能防止Web組件訪問共享資源(如靜態(tài)類變量、外部對(duì)象)導(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從請(qǐng)求處理requestprocessing和數(shù)據(jù)存儲(chǔ)datastorage中分離開來,SUN公司推薦在JSP文件中使用一種“模型-視圖-控制器”Model-view-controller模式。規(guī)范的SERVLET或者分離的JSP文件用于處理請(qǐng)求。當(dāng)請(qǐng)求處理完后,控制權(quán)交給一個(gè)只作為創(chuàng)建輸出作用的JSP頁。有幾種平臺(tái)都基于服務(wù)于網(wǎng)絡(luò)層的模-視圖-控件模式(比如Struts和Springframework)。8.2JSP技術(shù)的強(qiáng)勢(1)一次編寫,到處運(yùn)行。在這一點(diǎn)上Java比PHP更出色,除了系統(tǒng)之外,代碼不用做任何更改。(2)系統(tǒng)的多平臺(tái)支持;旧峡梢栽谒衅脚_(tái)上的任意環(huán)境中開發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比ASP/PHP的局限性是顯而易見的。(3)強(qiáng)大的可伸縮性。從只有一個(gè)小的Jar文件就可以運(yùn)行Servlet/JSP,到由多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺(tái)Application進(jìn)行事務(wù)處理,消息處理,一臺(tái)服務(wù)器到無數(shù)臺(tái)服務(wù)器,Java顯示了一個(gè)巨大的生命力。(4)多樣化和功能強(qiáng)大的開發(fā)工具支持。這一點(diǎn)與ASP很像,Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺(tái)之下。8.3JSP技術(shù)的弱勢(1)與ASP一樣,Java的一些優(yōu)勢正是它致命的問題所在。正是由于為了跨平臺(tái)的功能,為了極度的伸縮能力,所以極大的增加了產(chǎn)品的復(fù)雜性。(2)Java的運(yùn)行速度是用class常駐內(nèi)存來完成的,所以它在一些情況下所使用的內(nèi)存比起用戶數(shù)量來說確實(shí)是“最低性能價(jià)格比”了。從另一方面,它還需要硬盤空間來儲(chǔ)存一系列的.java文件和.class文件,以及對(duì)應(yīng)的版本文件。8.4JSP內(nèi)置對(duì)象8.4.1request對(duì)象:該對(duì)象封裝了用戶提交的信息,通過調(diào)用該對(duì)象相應(yīng)的方法可以獲取封裝的信息,即使用該對(duì)象可以獲取用戶提交信息。8.4.2response對(duì)象:對(duì)客戶的請(qǐng)求做出動(dòng)態(tài)的響應(yīng),向客戶端發(fā)送數(shù)據(jù)。8.4.3session對(duì)象:session對(duì)象是一個(gè)JSP內(nèi)置對(duì)象,它在第一個(gè)JSP頁面被裝載時(shí)自動(dòng)創(chuàng)建,完成會(huì)話期管理。從一個(gè)客戶打開瀏覽器并連接到服務(wù)器開始,到客戶關(guān)閉瀏覽器離開這個(gè)服務(wù)器結(jié)束,被稱為一個(gè)會(huì)話。當(dāng)一個(gè)客戶訪問一個(gè)服務(wù)器時(shí),可能會(huì)在這個(gè)服務(wù)器的幾個(gè)頁面之間反復(fù)連接,反復(fù)刷新一個(gè)頁面,服務(wù)器應(yīng)當(dāng)通過某種辦法知道這是同一個(gè)客戶,這就需要session對(duì)象。8.4.5application對(duì)象:服務(wù)器啟動(dòng)后就產(chǎn)生了這個(gè)application對(duì)象,當(dāng)客戶在所訪問的網(wǎng)站的各個(gè)頁面之間瀏覽時(shí),這個(gè)application對(duì)象都是同一個(gè),直到服務(wù)器關(guān)閉。但是與session不同的是,所有客戶的application對(duì)象都是同一個(gè),即所有客戶共享這個(gè)內(nèi)置的application對(duì)象。8.4.5out對(duì)象:out對(duì)象是一個(gè)輸出流,用來向客戶端輸出數(shù)據(jù)。out對(duì)象用于各種數(shù)據(jù)的輸出。8.5JSP的技術(shù)方法8.5.1將內(nèi)容的生成和顯示進(jìn)行分離用JSP技術(shù),Web頁面開發(fā)人員可以使用HTML或者XML標(biāo)識(shí)來設(shè)計(jì)和格式化最終頁面,并使用JSP標(biāo)識(shí)或者小腳本來生成頁面上的動(dòng)態(tài)內(nèi)容(內(nèi)容是根據(jù)請(qǐng)求變化的,例如請(qǐng)求賬戶信息或者特定的一瓶酒的價(jià)格等)。生成內(nèi)容的邏輯被封裝在標(biāo)識(shí)和JavaBeans組件中,并且捆綁在腳本中,所有的腳本在服務(wù)器端運(yùn)行。由于核心邏輯被封裝在標(biāo)識(shí)和JavaBeans中,所以Web管理人員和頁面設(shè)計(jì)者,能夠編輯和使用JSP頁面,而不影響內(nèi)容的生成。8.5.2適應(yīng)平臺(tái)幾乎所有平臺(tái)都支持Java,JSP+JavaBeans幾乎可以在所有平臺(tái)下通行無阻。從一個(gè)平臺(tái)移植到另外一個(gè)平臺(tái),JSP和JavaBeans甚至不用重新編譯,因?yàn)镴ava字節(jié)碼都是標(biāo)準(zhǔn)的與平臺(tái)無關(guān)的。8.5.3數(shù)據(jù)庫連接Java中連接數(shù)據(jù)庫的技術(shù)是JDBC,Java程序通過JDBC驅(qū)動(dòng)程序與數(shù)據(jù)庫相連,執(zhí)行查詢、提取數(shù)據(jù)等操作。此外,通過開發(fā)標(biāo)識(shí)庫,JSP技術(shù)可以進(jìn)一步擴(kuò)展。第三方開發(fā)人員和其他人員可以為常用功能創(chuàng)建自己的標(biāo)識(shí)庫。這使得Web頁面開發(fā)人員能夠使用熟悉的工具和如同標(biāo)識(shí)一樣的執(zhí)行特定功能的構(gòu)件來進(jìn)行工作。JSP技術(shù)很容易整合到多種應(yīng)用體系結(jié)構(gòu)中,以利用現(xiàn)存的工具和技巧,并且能擴(kuò)展到支持企業(yè)級(jí)的分布式應(yīng)用中。作為采用Java技術(shù)家族的一部分,以及Java2(企業(yè)版體系結(jié)構(gòu))的一個(gè)組成部分,JSP技術(shù)能夠支持高度復(fù)雜的基于Web的應(yīng)用。由于JSP頁面的內(nèi)置腳本語言是基于Java的,而且所有的JSP頁面都被編譯成為JavaServlets,所以JSP頁面具有Java技術(shù)的所有好處,包括健壯的存儲(chǔ)管理和安全性。作為Java平臺(tái)的一部分,JSP擁有Java編程語言“一次編寫,各處運(yùn)行”的特點(diǎn)。9、實(shí)訓(xùn)的收獲與體會(huì)初次涉及Java領(lǐng)域,感覺到Java入門是好像沒有C,C++入門快,工具也沒有什么TurboC,VisualC++好用,什么JAVA_HOME,CLASSPATH,虛擬機(jī)等概念都是初次基礎(chǔ),旁邊的人都很少用Java的。感覺Java就是做Applet的。慢慢的知道了,開始知道Java博大精深。讓我不可思議的是JAVA2,JDK,J2SE,J2EE,J2ME等新名詞在自己的腦海里蔓延。慢慢的自己知道了JCP組織是制定Java相關(guān)規(guī)范的發(fā)源地,于是訂閱了一份郵件列表。真是好東西啊,定期有Java的最新動(dòng)向,所以Java的動(dòng)態(tài)盡收眼里,搭起Java開發(fā)環(huán)境后,記得剛開始還是用UltraEdit編輯并編譯的慢慢的改用JCreator了,最開始買了一套2本書,還不錯(cuò)。對(duì)于入門來說足夠了。慢慢的知道是一本好書,后來才知道,有了Java經(jīng)驗(yàn)后,看這本書特別過癮,所以現(xiàn)在還經(jīng)常翻翻。周而復(fù)始的看,效果特別好。慢慢的知道了Oreilly公司出的圖書不錯(cuò),不知道什么時(shí)候,要開始干項(xiàng)目了,以前從書上看到的東西,慢慢的在項(xiàng)目中有了很好的機(jī)會(huì)去溫習(xí),慢慢的有了感覺,開始主要是用Swing,開發(fā)桌面系統(tǒng),放置一個(gè)按鈕怎么也放不好,后來才知道有一個(gè)布局管理器。慢慢的開始涉及到數(shù)據(jù)庫訪問,JDBC。隨后Java規(guī)范了。最開始下載的規(guī)范是JDBCSpecification,很多概念一目了然,尤其是DATABASE的事務(wù)性控制,自己對(duì)于她的理解慢慢的有了較為深入的了解。對(duì)于開發(fā)C/S結(jié)構(gòu),比如,Swing+JDBC,開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng),讓我學(xué)會(huì)開發(fā)兩層結(jié)構(gòu)的應(yīng)用系統(tǒng)。也不知道什么時(shí)候要開始開發(fā)一個(gè)網(wǎng)站,基于Linux+JSP+JavaBean+Oracle的系統(tǒng)。很是有意思。為什么這么說呢?因?yàn)椴煌赟wing+JDBC的開發(fā)模式,系統(tǒng)之間多了一層;同時(shí),很多開發(fā)技術(shù)和面向左面系統(tǒng)不一樣,比如分頁技術(shù)。完成項(xiàng)目后,自己對(duì)于Java的很多方面都比較了解了。開始思考一個(gè)問題,J2EE是什么東西?。我們學(xué)習(xí)Java大概有3個(gè)方向,第一,桌面系統(tǒng),包括C/S結(jié)構(gòu);第二,J2ME,面向無限領(lǐng)域,很有潛力的家伙,看看中國的手機(jī)用戶就知道了。第三,面向企業(yè)應(yīng)用、計(jì)算的平臺(tái),J2EE.在痛苦的抉擇后,我選擇J2EE..分享J2EE給我?guī)淼目鞓贰W(xué)到現(xiàn)在,最大的感覺,就是:簡單就是美,美就是Java.不會(huì)有學(xué)MFC的痛苦,也不會(huì)有去分析STL的艱辛,網(wǎng)路應(yīng)用上一點(diǎn)也不遜色于C++。Servlet過濾器,XML方面較為全面的知識(shí),知道了J2EE整個(gè)框架中各種技術(shù)的實(shí)際應(yīng)用。慢慢的,開始研究WebLogic配置好的PetStore(也是Sun公司的)。慢慢的分析兩者的不同之處。開始對(duì)J2EESpecification有了很好的感覺。因?yàn)镴2EESpecification本身是很嚴(yán)肅的,但PetStore給出了活力。在反復(fù)的學(xué)習(xí)中,我明白了J2EE構(gòu)架的7080%。新的問題又出來了,實(shí)際企業(yè)中會(huì)如何建構(gòu)一個(gè)J2EE系統(tǒng)呢?帶著這個(gè)問題,我開始分析CoreJ2EEPatterns,這本書。同時(shí),也有EJBDesignPatterns。慢慢的,開始知道了J2EE的魅力所在,知道了J2EE為什么會(huì)在企業(yè)中得到較為好的認(rèn)可。大家都知道,設(shè)計(jì)模式一詞,在公司上班,你們的老板會(huì)看你的代碼嗎?會(huì)贊賞你的DP很好嗎,我想很少。在完成你的工作進(jìn)度之余,加班,加班,再加班,我想你沒有更多的時(shí)間去分析研究DP.但,J2EE框架不一樣,她內(nèi)置了很多優(yōu)秀的設(shè)計(jì)模式,我們?cè)谠O(shè)計(jì)開發(fā)、構(gòu)架一個(gè)J2EE系統(tǒng)中用到了很多設(shè)計(jì)模式。比如,MVC,EJB中封裝的DAO設(shè)計(jì)模式。構(gòu)架J2E系統(tǒng)用SessionFaade,MessageFaade設(shè)計(jì)模式也不會(huì)太困難。這也是后來J2EE吸引我的地方。慢慢的我知道了,作為一個(gè)J2EE開發(fā)者,我們要掌握其中的核心內(nèi)容。我個(gè)人認(rèn)為,3方面很重要。實(shí)施EJB系統(tǒng)常用的架構(gòu)、設(shè)計(jì)模式,比如sessionfaade、messagefaade、DTO等。J2EE系統(tǒng)構(gòu)架中常用的模式。UML->EJB,EJB->UML相互映射。通過實(shí)訓(xùn),我自身發(fā)生了重大的轉(zhuǎn)變,我相信我會(huì)在JAVA開發(fā)這條路上走的更長更遠(yuǎn)。

友情提示:本文中關(guān)于《JavaWeb實(shí)習(xí)報(bào)告》給出的范例僅供您參考拓展思維使用,JavaWeb實(shí)習(xí)報(bào)告:該篇文章建議您自主創(chuàng)作。

來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請(qǐng)聯(lián)系我們及時(shí)刪除。


JavaWeb實(shí)習(xí)報(bào)告》由互聯(lián)網(wǎng)用戶整理提供,轉(zhuǎn)載分享請(qǐng)保留原作者信息,謝謝!
鏈接地址:http://www.taixiivf.com/gongwen/673122.html
相關(guān)文章
最新文章