當前位置:範範文>個人文件>實習報告>

java web實習報告

實習報告 閱讀(3.23W)

目錄

java web實習報告
第一篇:java web 開發技術實驗報告模版第二篇:java web課程設計實訓報告第三篇:java web郵件學習第四篇:java web總結第五篇:java web總結更多相關範文

正文

第一篇:java web 開發技術實驗報告模版

專案綜合實踐報告 題目:html+css 旅遊入口網站設計

班級:計算機2014(1)姓名:丁一學號:954211完成日期:2014.9.14

一、分析設計

用文字、圖表等說明設計思路及設計結果。

二、主要原始碼

html

css

三、效果圖

螢幕抓圖

四、除錯過程

(除錯過程中碰到的問題及解決方法)

五、實驗結論

1、實驗結果圖

2、實驗心得體會

第二篇:java web課程設計實訓報告

java web課程設計實訓報告

我們進行了為期一週的java web的課程實訓。在這次實訓中,我覺得我學到了很多東西。這次,老師給我們安排了一個專案,是關於商店購物的。首先,我們劃分了幾個小組,每組4-6人,每個人有每個人的工作,每個人的工作完成後整合到一起,這個專案就完成了。我在我們小組的工作是寫一段刪除商品的java程式碼。因為我的基礎比較差,所以我分擔的工作比較少,下面是我做的一段程式碼:

public void deleteproduct(string id) {

statement stmt = null;

connecttodb();

int tempid =

eint(id);

try {

stmt =

testatement();

ute("delete from

shop_info where product_id=" + tempid);

} catch (exception e) {

tstacktrace();

} finally {

close(, stmt, null); }}

總而言之,這次實訓對我的幫助很大,我工作會很有從中學到了什麼是團隊協作,正所謂團結就是力量,不僅如此,我還學到了很多的專業知識,積累了一些經驗。我想,對於我以後的工作會很有幫助,希望還能有更多像這樣的機會讓我能夠鍛鍊我自己。

第三篇:java web郵件學習

上傳檔案總結:

1、 驗證是否要處理的是上傳檔案

ltipartcontent(request)

2、 建立diskfileitemfactory 物件並對其初始化設定

diskfileitemfactory factory = new diskfileitemfactory();

izethreshold(20 * 1024);

epository(epository());

3、 建立servletfileupload 物件並設定其編碼方式

servletfileupload upload = new servletfileupload(factory);

eaderencoding("gbk");

4、 開始獲取上傳檔案的集合:

formlists = erequest(request);

5、 設定上傳檔案允許的大小

int size = 2 * 1024 * 1024;

6、 迴圈遍歷formlists集合來根據其元素的型別(普通表單域還是檔案域)進行賦值還是上傳功能 iterator iter = ator();

while (ext()) {

fileitem formitem = (fileitem) (); 7、 是檔案域則執行上傳:

具體做法:(1)、獲取檔案路徑全名:string name = ame();

(2)、判斷檔名字尾是否符合要求:!with("mp3")

(3)、判斷檔案大小是否符合要求ize() > size

if/else(4)、都符合要求則上傳:

第一步:判斷檔案的名稱不能為空(ame())、大小不能為0

(ize()),如果不符合要求則continue執行下一迴圈

第 二步: 獲取檔案的單純檔名稱: tring(indexof("")

+ 1, th());

第 三步: 設定儲存到的服務器地址:filedir ("file/") + "" + 單純名稱;file savefile = new file(伺服器地址);

第 四步: 上傳: e(savefile);

、 是普通表單域則將表單項的值賦值給相關物件變數,如(更多內容請訪問好範 文網:)javabean(每一次迴圈將該次對應的表單項的值付

給適當的變數物件)

string formname = ieldname(); 獲取普通表單項的名稱

string con = tring("gbk");

用ls(““)來判斷

下載檔案具體方法:

1、 獲取伺服器下載地址並將此地址字串進行編碼:

string path=arameter("path");

2、 建立下載目錄:

file file = new file(path);獲取普通表單項的值並編碼 path=new string(ytes("iso-8859-1"));

3、 建立檔案位元組輸入流

inputstream in = new fileinputstream(file);

4、 建立輸出流物件

outputstream os = utputstream();

5、 設定該輸出流的應大頭、編碼等配置

eader("content-disposition", "attachment;filename="

+ new string(ame()ytes("gbk"),"iso-8859-1"));

eader("content-length", th() + ""); haracterencoding("gbk");

6、 開始下載:

int data = 0;

while ((data = ()) != -1)

{ e(data); }

7、 關閉輸入輸出流

e();

e();

郵件接收的方法:

dao:

1、 建立郵件接收類:store

思路:建立properties類並新增屬性->建立session物件->建立store物件並連線到伺服器和編寫關閉方法

2、 獲取全部已讀郵件的名稱集合的方法 返回string

3、 獲取全部已讀或未讀郵件的內容的方法返回list(包含郵件資訊和附件狀態,但不包含具體附件內容) 思路: 獲取store物件->獲取pop3folder物件->開啟pop3folder郵件夾->建立fetchprofile預提取物件並對其新增兩個常用屬性->定義message[]物件陣列並設為null->獲取全部已讀郵件的uid字串->若字串不為空則->轉換為陣列並進行排序->根據要求的已讀或者未讀條件來獲取全部已讀或未讀郵件資訊給message[] (ch)->後退三步-若字串為空則->獲取全部未讀郵件資訊message[]---?開始提取上述郵件陣列中每一個郵件的詳細資訊->迴圈遍歷message[]陣列->定義mimemessage物件並賦值為陣列元素->獲取郵件id、發件人、郵件時間->根據編碼型別獲取郵件主題->由自定義方法獲取此郵件的附件物件(string[])->message[i]lags()ystemflags()ring();->如果判斷返回的郵件有附件,則獲取附件設定為1,否則設定為0(來控制頁面中的附件圖示的顯示)->將此郵件資訊物件新增到list中。

4、 向資料庫中新增已讀郵件的標記的方法:iduid address

5、 獲取指定郵件中附件的方法:此方法中重點是對郵件內容的編碼處理,故這裡重點介紹主要功能語法: 思路:(1)定義該郵件名稱對應的所有附件連線字串為超連結(附件之間用空格隔開)(string,由多個”附件序號=&附件名稱=&郵件序號”組成),定義郵件名稱字串(已知條件)

(2) multipart multipart = (multipart) ontent();得到該郵件所有的內容集合,然後對其遍歷以獲取每一個multipart中每一個bodypart->判斷此bodypart是否為附件,若是附件則獲取該附件的名稱 並新增到(1)中的連線字串中,連線字串中附件序號為遍歷變數j

最後: int counts = ount();

bodypart物件的個數 //返回mimemultipart物件中儲存的//關閉流 ontenttype("application/octet-stream");

for (int i = 0; i < counts; i++) {} getmailattach(odypart(i), emailv);

並返回string[] obj = { 郵件主題內容, filename1 };

6、 對輸入的utf7編碼的內容進行轉碼的方法

servlet:

下載附件servlet:

思路:設定ontenttype("text/html;charset=gbk")、

haracterencoding("gbk")->建立httpsession物件->建立servletoutputstream物件->獲取頁面傳遞變數:附件序號、附件名稱;獲取session變數"message"->將附件名稱進行編碼處理:filename=new

string(ytes(),"iso-8859-1")->eader("content-disposition","attachment;filename="+filename)->由”message”獲取multipart物件->由multipart物件獲取bodypart物件->由bodypart物件獲取inputstream物件->開始下載:

int c=0;

while((c=())!=-1){e(c);}

收取郵件servlet(郵件的全部具體資訊):

1、 郵箱登陸的驗證方法:

思路:獲取表單傳遞值的host username pwd->用dao(1)中的方法進行使用者驗證如果正確->建立httpsession物件->用ttribute的方法儲存登陸的使用者資訊(以上三個)->

e();

2、 獲取當前分頁頁面中已讀或未讀的全部郵件的集合(包含郵件資訊和附件狀態,但不包含具體附件內容) 思路:建立httpsession物件,並獲session變數host username pwd和request變數"flag"和"page"-> ttribute("flag", flag)->根據request變數”page”來判斷是否已經開始分頁瀏覽->若沒有則先執行dao(3)方法獲取已讀或未讀的全部郵件集合,然後執行自定義分頁類中的初始化方法獲取上述集合中的第一頁中的郵件集合,並ession()ttribute("pagination", 分頁類的例項化);->若已經開始分頁,則將當前頁page賦值為已經存在的session型別的分頁類物件中的getpage方法中返回的page,並且執行自定義分頁類中的類似初始化方法的獲取當前頁面集合的方法(具體看程式)

3、 檢視郵件詳細資訊:(獲取指定郵件的資訊)

思路:同dao(3)中的方法相似 不同之處是:dao(3)查詢的是全部已讀或未讀 而本案查詢的是指定的郵件id tools:

本案中主要為分頁類的編寫:

1、 初始化獲取第一頁的集合

2、 獲取已分頁的當前頁面的集合

3、 獲取全部記錄數

4、 獲取最大頁數

5、 獲取當前頁數

6、 獲取分頁導航

第四篇:java web總結

java web 總結

執行原理

(1)使用者通過客戶端瀏覽器向伺服器傳送請求。

(2)jsp檔案將jsp引擎編譯成java的class檔案,即servlet。

(3)將產生的servlet載入到記憶體執行。

(4)servlet的執行結果以html(或xml)形式通過web伺服器返回客戶端的瀏覽器。

專案設計

(1)公開目錄(2)web_inf目錄(3)class目錄

的基本語法

(1)指令碼元素:宣告、指令碼段、表示式。

(2)指令碼段:<%%>

(3)宣告:<%!%>不會產生任何輸出內容→宣告全域性變數。

(4)表示式:<%= %>

(5)el表示式:${ }

(6)指令元素:<% @ %>不在客戶端可見

(7)page指令、include指令、taglib指令

page指令:language屬性、contenttype(text/html)、text/plain application/msword、application/x-msexecl、pageencoding、info、import屬性.

include指令:在jsp頁面中靜態包含一個檔案 <@include file=""%>taglib指令: <%@taglib uri="標記庫的uri地址" prefix="字首名"%> 指令元素翻譯階段執行,動作元素執行階段被執行。

<jsp:include>用於包含其他檔案可以是靜態檔案,也可以是動態檔案。 <jsp:include>?</jsp:include>包含動態檔案時

用<jsp:param>傳 (建一值)

考點:

4.指令與動作的區別(include)

1.執行時間不同

指令<%@ include file=" "%>是偏譯時包含靜態檔案

動作<jsp:include page=" ">?</jsp:include>是執行時包含的檔案

2.引入內容不同

指令<%@include file="relatirveuri"%>引入靜態文字()。

動作<jsp:include page="relativeuri" flash="true"/>引入執行頁面或severlet的應答文字。

內建物件

out,request,response,session,application,page,pagecontext,exception,config

request客戶端向服務端傳送請求。

response用於伺服器端封裝jsp處理請求後產生的結果。

response物件的send redirect(url)方法相當於兩次請求。

而<jsp:forward>在網址不變情況下內部跳轉不同頁面,但依舊屬於同一次請求

ion和cookie的區別

1.存放地點不同

session存放在伺服器端,cookie存放在客戶端的硬盤裡

2.存活時間

session隨使用者訪問伺服器而產生,隨客戶下線或超時而消失

3.安全性

session存放在伺服器端,不能被修改,且隨客戶端瀏覽器的關閉而消失,安全性較好。cookie存放在客戶端,安全性較差。

7.資料庫

er

ermanager——載入驅動程式

etion——表示資料庫連線物件,對資料庫一切操作都在這個基礎上

ement——執行sql語句和返回結果

ltset——結果集用來暫時存放資料庫查詢操作結果

8.編寫程式的步驟

1.裝載驅動程式

ame("er")

2.定義所需連線資料庫的地址

string mysqlurl="l://host:port/dbname"

3.建立與資料庫的連線

connection conn= connection(url,"登入資料庫使用者名稱","

密碼")

4.宣告並執行sql語句

5.處理返回的結果

6.關閉物件

string driverstr="er"

string connstr="jdbc:mysql://localhost:3306/book";

class forname(driver str)

connection conn=onnection(connstr."root"."123") 第4步:建立語句物件

statement stmt=testatement()

第5步:宣告並執行sql語句

string sql="select*from book";

resultset rs=utequery( sql);

第6步:

statement介面的3個方法:1、resultset executequery(string sql)

2、int execute update(string sql)

3、boolean execute(string sql)

resultset的方法:1、boolean next()

2、get xxx()

第7歩:e()e()e()

注:關閉資源的順序與開啟資源順序恰好相反。

第8步:異常處理

try{.........}catch(sqlexecption ex){.........}

bean 元件(可重用)

元件:是一個獨立的模組,外界可以不瞭解內部如何實現,只需通過其提供的介面對元件進行訪問即可,元件可重用。

特點:1、實現程式碼重複使用;2、易編寫,易維護,易使用。

bean類的編碼約定

1、類實現了alizable介面

2、必須放在某個package(包)中

3、類中如果有構造方法,那麼這個方法是共有的,並且無引數

4、所有屬性都是私有的(private修飾)

5、get xxx:用來獲取屬性,此方法是共有的

6、set xxx:用來設定屬性,此方法是共有的

7、對於boolean型別的成員變數允許使用“is”代替“get”和“set”

8、類中的普通方法不適合上面的命名規則,但這個方法必是public的。

3個標記:

<jsp:usebean>網頁中建立javabean例項

<jsp:setproperty>用於為bean中的屬性賦值

<jsp:getproperty>用於獲取bean中屬性的值

<jsp:usebean>id=”javabean例項名”class=”javabean對應的類名” <jsp:setproperty> 設定<jsp:usebean>的屬性

<jsp:getproperty>獲取javabean例項指令的屬性值,並將這個值轉換成字串顯示到jsp頁面。

let的生命週期

(1)當客戶第一次請求servlet時,servlet被載入到記憶體 容器會建立servlet例項,並呼叫其init()方法進行初始化工作。

(2)容器建立請求物件,然後呼叫servlet的service()方法為客戶提供服務。

(3)當servlet不再被需求時,容器呼叫servlet的destory()方法將servlet例項銷燬。

let開發

引入let.* 和x,.*包

let過濾器

servlet過濾器是一種java元件,它位於客戶端和處理程式之間

servlet過濾器工作原理

l1和model2

model1:jsp+javabean

model2:jsp+servlet+javabean

model1中,jsp頁面實現頁面顯示、業務邏輯和流程控制,資料處理由javabean完成。

優點:進行快速和小規模的應用開發時優勢非常明顯。

缺點:不利於web應用的擴充套件和更新;除錯和排錯困難。

model2中,mvc模式--->模型-檢視-控制器.即把web應用的輸入輸出和處理流程按照和controller分成三層。

model1和model2的區別:

model1和model2實際上就是對採用jsp技術開發的web應用的不同模型的描述。model1採用jsp+javabean技術開發web應用,它比較適合小規模應用的開發,效率較高,易於實現,但由於在jsp頁面中內嵌了大量的java程式碼,以至於當業務邏輯複雜時,程式碼可維護性、可擴充套件性和可重用性就會下降;model2採用jsp+servlet+javabean技術開發web應用,該模型基於mvc模式,完全實現了頁面顯示和邏輯的分離,它充分利用了jsp和servlet兩種技術的優點,jsp更適合前臺頁面的開發,而servlet更擅長伺服器端程式的編寫,model2分工明確,更適合大型專案的開發和管理

檢視(view)用於與使用者互動,可以用實現。

15.模型(model)用於表示業務資料和實現業務邏輯,可以用javabean實現 控制器(controller)完成流程控制,它接收來自檢視層使用者輸入的資料,並呼叫相應的模型進行處理,最後選擇合適的檢視去響應使用者。控制層可以用servlet實現。

優點:mvc模式完全實現了頁面表示和業務邏輯的分離;

mvc優勢之一在於三層各司其職,互不干涉。

缺點:沒有明確的定義。

模型層為javabean,實現了資料的表示和業務邏輯,檢視層為jsp頁面,只負責顯示功能。

控制器為servlet,負責接收使用者的請求,設定javabean屬性,呼叫javabean完成業務處理,最後將處理結果交給jsp頁面顯示。

16.自定義標籤

對隱式物件的操作、處理表單、訪問資料庫及其他企業級服務。

自定義標籤種類:

1.不帶有屬性和標籤體:<my prefix:sometag/>

2.帶有屬性沒有標籤體的標籤:<tag . myattribute:"test"/>

3.帶有屬性帶有標籤體:<myprefix:someteg myattribute="test"/>mybody

</myprefix:sometag>

表示式

基本語法${expr}

功能:對屬性物件的簡明訪問:${user}

對屬性物件的屬性訪問:${tname}

對屬性集合元素的訪問:對陣列和list:${variable[index]}對map:${variable[key]}

對請求引數cookie等的簡單訪問.

請求引數${id}

cookie物件:${cookie}

18."."操作符和"[ ]"操作符

${ess}=${user[address]}

訪問陣列和集合元素,需使用[ ]

${class[0]}=${class[0][name]}

${name}={%=arameter("username")%}

19."."與"[ ]"使用存在差異

1.當訪問的資料中包含一個特殊字元(如:"."或"_"時),就必須用"[ ]"操作符

2.當動態取值時必須使用"[ ]"操作符,"."操作符只能取到靜態的值

注:當"[ ]"操作符中的屬性名為常量時必須用''''引起,否則將會當做變數來處理.

標籤

1.<sql:set data source>標籤

2.<sql:query>執行資料庫查詢

3.<sql:update>執行資料庫更新

4.<sql:param>和<sql:dateparam>指明引數值

5.<sql:transaction>用於事務處理

21. tomcat的目錄結構及描述:

bin放置啟動和關閉tomcat的可執行檔案和批處理檔案

common放置在此目錄中的jar、class檔案,可以被此伺服器下所有的web應用使用

conf放置tomcat的主要配置檔案

logs放置tomcat的日誌檔案

server放置tomcat管理介面的應用

src放置tomcat相關的原始碼

temp放置tomcat臨時檔案

webapps 放置tomcat應用的目錄

work放置jsp頁面翻譯成對應的servlet類的目錄

第五篇:java web總結

java web 總結

servlet的繼承層次很多,但是我們web開發常用的也就是servlet這個類,我們常用的 兩個請求方法是doget(),dopost(),還有從父類繼承過來的方法init()初始化,destroy()servlet銷燬時會被調 用,getservletconfig()獲得servletconfig物件,getservletinfo()返回有關servlet的資訊,包括作 者、servlet版本等。

servlet的訪問必須在,怎麼配置會在下面舉例。 常用方法:

1、haracterencoding("utf-8");//設定用post傳遞給伺服器的引數編碼方式

2、ontenttype("text/html;charset=utf-8");//設定傳送給瀏覽器的內容編碼

3、httpsession session = ession();//獲得session會話ttribute("a","b");//給session作用域中存值可以這樣取值:ttribute("a");

4、servletcontext context = ervletcontext();整個web應用物件,或者用servletconfig物件ervletcontext()獲得

string str = nitparameter("encoding");//獲得全域性引數

5、servletconfig config = ervletconfig("p1");//獲得某個servlet專用的配置物件

string str =nitparameter("p2");//獲得某個servlet的專有配置引數

6、string str = arameter("s");//獲得頁面傳過來的引數

7、string[] sa = arametervalues("sa");//獲得字串陣列

8、ttribute("r","寶寶");//往request作用域中存值。在頁面可以${r}這樣取出寶寶。

9、printwriter out = riter();//獲得標準輸出流,此流內部做了處理直接會輸出給瀏覽器。

10、equestdispatcher("/")ard(request,response);//轉發redirect("");跳轉

連線資料庫的基本過程

載入驅動程式

建立連線物件

建立語句物件

編寫sql語句

使用語句物件執行sql語句

如果有結果集對結果集進行處理

關閉結果集物件(如果有),關閉語句物件,關閉連線物件

如何載入驅動程式

ame(“驅動程式名字”):

如何建立連線

通過drivermanager的getconnection方法,有3個引數,第一個引數是url,第二個引數是使用者名稱,第三個引數是口令。

http 是一個屬於應用層的面向物件的協議,由於其簡捷、快速的方式,適用於分散式超媒體資訊系統。它於1990年提出,經過幾年的使用與發展,得到不斷地完善和 擴充套件。目前在www中使用的是http/1.0的第六版,http/1.1的規範化工作正在進行之中,而且http-ng(next generation of http)的建議已經提出。

http協議的主要特點可概括如下:

1.支援客戶/伺服器模式。

2.簡單快速:客戶向伺服器請求服務時,只需傳送請求方法和路徑。請求方法常用的有get、head、post。每種方法規定了客戶與伺服器聯絡的型別不同。由於http協議簡單,使得http伺服器的程式規模小,因而通訊速度很快。

3.靈活:http允許傳輸任意型別的資料物件。正在傳輸的型別由content-type加以標記。

4.無連線:無連線的含義是限制每次連線只處理一個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連線。採用這種方式可以節省傳輸時間。

5.無狀態:http協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶

能力。缺少狀態意味著如果後續處理需要前面的資訊,則它必須重傳,這樣可能導致每次連線傳送的資料量增大。另一方面,在伺服器不需要先前資訊時它的應答就較快。

預設推薦訪問其他精彩內容:

java web 流程

java web複習

java web 大題(新)

java web測試題

java實習報告