朕 JAVAEE 實驗02 實驗報告

(一)項目描述

實驗名

所用知識點

項目效果

Lab05 過濾器基礎

Filter的排序、調用、轉發、如何過濾

能夠將過濾鏈的轉發過程打印出

Lab06 過濾器生命週期

Filter過濾信息、設置錯誤信息彈框、監聽器創建對話、各域的使用

登陸頁能正確判斷用戶填寫的信息並進行反饋,後臺能判斷用戶是否爲合法登錄,能提供所有登錄成功者信息。

Lab07 配置描述符中的通配符應用

地址的寫法、匹配方法

導航頁能正確訪問到各網頁

Lab08 JSP基礎

Jsp基礎寫法

用jsp語法實現庫的調用,實現運算、響應等

(二)錯誤分析總結

【1】問題介紹:url配置爲“/j2017051046_x_xx/abc”時,瀏覽器地址卻是“/j2017051046_x_xx/j2017051046_x_xx/abc”

問題分析:可能軟件自己添加了一個項目名

問題解決:將url改成” /abc”即可

 

【2】問題介紹:servlet在接受filter過濾後的參數時,獲取失敗。

問題分析:①知識點不足,可能需要專門方法。②參數錯誤。

問題解決:百度與檢查代碼發現,是因爲參數錯誤。

 

【3】問題介紹:Tomcat啓動失敗。

問題分析:分析錯誤提示,該情況與代碼錯誤無關。可能解決方案:①刪除tomcat重啓。②向lib導入jar包。

問題解決:在實現①仍然報錯的情況下,找到了lib需要的jar包複製進lib中。

 

【4】問題介紹:保存html時彈出錯誤

問題分析:字符集不匹配的問題

問題解決:設置html字符集爲UTF-8

 

【5】問題介紹:jsp代碼報錯。

問題分析:在確定無關普通代碼錯誤時,比對老師代碼,發現jsp中,head部分使用<%! %>,不同於 body 部分使用<% %>

問題解決:在 <% 後加一個 !

 

(三)知識點總結

  1. Lab05

①對於一個web應用程序來說,過濾器是處於web容器內的一個組件,它會過濾特定請求資源請求信息和響應信息。一個請求來到時,web容器會判斷是否有過濾器與該信息資源相關聯,如果有則交給過濾器處理,然後再交給目標資源,響應的時候則以相反的順序交給過濾器處理,最後再返回給用戶瀏覽器。

 

  1. Lab06

①Filter的創建和銷燬由web服務器負責

②filter對象只會創建一次,init方法也只會執行一次,destroy方法可以釋放過濾器使用的資源

③filter在destroy()調用之前都常駐內存

  1. Lab07

①load-on-startup 元素的值必須是一個整數,表示servlet被加載的先後順序。如果該元素的值爲負數或者沒有設置,則容器會當Servlet被請求時再加載。如果值爲正整數或者0時,表示容器在應用啓動時就加載並初始化這個servlet,值越小,servlet的優先級越高,就越先被加載。值相同時,容器就會自己選擇順序來加載。

②/和/*的區別: < url-pattern>/</url-pattern>  會匹配到/login這樣的路徑型url,不會匹配到模式爲*.jsp這樣的後綴型url。< url-pattern>/*</url-pattern> 會匹配所有url:路徑型的和後綴型的url(包括/login,*.jsp,*.js和*.html等)。

③servlet進行url匹配時,會優先進行精確匹配,其次模糊匹配

  1. Lab08

①主要掌握了jsp基礎語法,對head,body中<%! %> <% %>的區別尤爲深刻。

(四)思考、展望

在自以爲完成項目、正製作navigate導航頁面時,發現幾個在項目中有很好運行效果的頁面或servlet運行失敗。其原因是:在項目中,項目的運行是線性的、參數是具備的。在單獨訪問中,可能頁面或servlet所索取的資源並不存在,但是卻在使用,這便是程序運行不成功的典型錯誤。這也是實驗1自己所反思的代碼缺少健壯性問題。

在學習中,深刻了j2ee四大作用域①pagecontext(只能在創建對象的頁面中訪問)②request(所以對於每一個新的請求,都要重新創建和刪除這個範圍內的對象)③session(在會話期間,可以訪問session範圍內的對象)④servletContext(在Web應用程序運行期間,所有的頁面都可以訪問在這個範圍內的對象)的範圍。

展望的自己能爲學習而寫作業,而不是爲寫作業而學習。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章