javaweb基礎知識點記錄2

javaweb基礎知識點記錄

1、在service方法中,首先獲得請求的方法名,然後根據方法名調用對應的doXXXX方法,比如說請求參數爲GET,那麼就會去調用doGet方法,請求參數爲POST,那麼就會去調用doPost方法。

2、在HttpServlet類中所提供的doGet,doPost等方法都是直接返回錯誤信息,所以我們需要在自己定義的Servlet類中來overvide這些方法。

3、對於Tomact來說,它會將客戶端傳送過來的參數放在一個Hashtable裏面,該Hashtable的定義是:

	private Hashtable <String,String[]> paramHashStringArray = new Hashtable <String,String[]>();
	
	private boolean didQueryParameters = false;
	
	private boolean didMerge = false;

這是一個從String到String[]的映射。

4、某些Servlet在web.xml文件之中只有元素而沒有元素,這樣我們就無法通過URL地址的方式來訪問這個servlet了,這種Servlet通常會在元素中配置一個子元素,讓容器可以在啓動的時候自動加載該Servlet,並且調用init方法來完成一些全局的初始化工作。

5、ServletContext與web應用之間的關係
當Servlet容器啓動應用的時候,並且爲每一個web應用創建一個唯一的ServletContext對象,你可以把ServletContext看作是一個web應用服務器組件的共享內存。在ServletContext中可以存放共享數據。

6、Servlet的多線程同步問題,Servlet本身是單實例的,這樣當有多個用戶訪問某一個Servlet時候,會訪問該唯一的Servlet實例中的成員變量,如果對成員變量進行寫入操作,那就導致Servlet產生多線程的同步問題,即數據不一致的問題。

7、解決Servlet多線程同步問題的最好方案就是,去掉實例變量,使用局部變量。

8、比較Servlet與JSP
a、有許多的相似之處,都可以生成動態的網頁。
b、JSP的優點是擅長網頁的製作,生成動態的頁面,比較直觀。JSP的缺點是不擅長追蹤和排錯。
c、Servlet是純的java代碼,擅長處理流程和業務邏輯。Servlet的缺點是生成動態頁面不直觀。

9、request.getAttribute()和request.getParameter()方法有什麼異同?
a、前者返回Object類型的對象,後者返回String類型的對象。
b、request.getAttribute()和request.setAttribute()相對應。
c、當兩個web組件之間爲鏈接關係時,被鏈接的組件通過getParameter()方法來獲取請求參數。
d、當兩個web組件之間爲轉發關係時,轉發目標組件通過getAttribute()方法來和轉發源組件共享request範圍內的數據。
e、request.getParameter()方法傳遞的數據,會從web客戶端傳到web服務器端,代表着HTTP請求。
f、requset.setAttribute(0和request.getAttribute()方法之間傳遞的數據只會存在於web容器的內部,在具有轉發關係的web組件之間共享。

10、web服務器跟蹤客戶狀態通常有4種方法。
a、建立含有跟蹤數據的隱藏字段。
b、重寫包含有額外參數的URL。
c、使用持續的cookie。
d、使用Servlet API中的session機制。

11、session的基本概念,session用於跟蹤客戶的狀態,session指的是在一段時間之內,單個客戶與web服務器的一連串的交互過程。在一個session中,客戶可能會多次其請求訪問同一個網頁,也有可能訪問不同的服務器資源。

12、session的運行機制
a、當一個session開始時,servlet容器會創建一個HttpSession對象,在HTTPSession對象中可以存放客戶狀態的信息。
b、Servlet容器會爲HTTPSession分配一個唯一的標誌符,稱爲Session ID,Servlet容器會把session ID作爲cookie保存在客戶的瀏覽器之中,
c、每次客戶發出HTTP請求之時,Servlet容器可以從HttpServletRequest對象之中讀取Session ID,然後根據Session ID找到相應的HttpSession對象,從而獲取客戶的狀態信息。

13、過濾器

a、Servlet過濾器本身並不請求和響應對象,它只提供過濾作用。
b、Servlet過濾器能夠在Servlet被調用之前檢查Request對象,修改Request Header和Request內容。
c、在Servlet被調用之後檢查Response對象,修改Response Header和Response內容,Servlet過濾器負責過濾的web組件可以是Servlet、jsp和HTML。

14、JSP裏面的java程序片段可以操作數據庫,重新定向網頁,實現建立動態網頁需要的功能。所以程序操作都在服務器端執行,網絡上傳輸給客戶端的僅僅是得到的結果,這樣大大降低了對客戶端瀏覽器的要求,即使客戶瀏覽器不支持java,也可以訪問JSP頁面。

15、下面的包在JSP頁面中是不需要導入的,服務器會幫助我們自動導入

java,lang.*
java.servlet.*
java.servlet.jsp.*
java.servlet.http.*

16、使用request來完成嚮導式頁面開發和使用session來完成嚮導式的頁面開發。

說明:使用request和session都可以來完成嚮導式的頁面開發,但是過多的session會佔用服務器端的內存,session會一直存在於服務器之中。在實際的開發中,應該使用request和hidden來完成這種嚮導式的頁面開發。

17、javaBean在page範圍內

用戶每次請求訪問jsp頁面的時候,都會創建一個JavaBean對象。JavaBean對象的有效範圍是用戶請求訪問的當前jsp頁面。JavaBean對象在以下的兩種情況下都會結束生命週期。

用戶請求訪問的當前jsp頁面通過標記將請求轉發到另外一個頁面。

用戶請求訪問的當前jsp頁面執行完畢並向客戶端返回響應。

18、Javabean在request範圍內

用戶每次請求訪問jsp頁面的時候,都會創建新的Javabean對象。Javabean的有效範圍爲:
客戶請求訪問的當前jsp頁面
和當前的jsp網頁共享同一個用戶請求的頁面
有<% include>指令以及標記包含的其他jsp頁面
當所有共享同一個用戶請求的jsp頁面執行完畢並向客戶端發回響應時,Javabean對象會結束生命週期

19、javabean在session範圍內

javabean對象作爲屬性保存在httpSession對象中,屬性名爲javabean的id,屬性值爲Javabean對象。除了可以通過Javabean的id直接引用Javabean對象以外,也可以通過HttpSession.getAttribute()方法來獲取javabean對象。

20、javabean在application範圍內

javabean對象被創建之後,它存在於整個web應用的生命週期內,web應用中的所有jsp文件都能共享一個javabean對象。

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