JavaWeb學習筆記 ---- Jsp基礎知識歸納篇(下)
快過年了時間有點緊,沒那麼多精力手寫了,所以很多有用的總結都截圖了,以圖片形式展現給大家。
說明:這裏的圖都是從《Java Web開發實戰經典》裏面截得。這是一本挺不錯的書,講的東西很實用,有興趣的同學建議購買正版紙質圖書哦!
1. JSP中的9個內置對象
在以上9個內置對象中,比較常用的對象有:pageContext、request、response、session、application這5個對象。
2.jsp中4種屬性
所謂的屬性範圍,指的就是一個內置對象可以在多少個頁面中保存並使用。
按屬性範圍從小到大,分別介紹如下:
(1) page:只在一個頁面中保存屬性,任何跳轉後屬性無效。
(2) request:在一次請求中保存屬性。服務器端多次跳轉,屬性仍然有效。而客戶端重新發送請求後,原屬性失效。
(3) session:在一次會話中保存屬性,服務器端/客戶端跳轉屬性均能保存,只有在關閉瀏覽器後屬性失效。
(4) application:在整個服務器上保存屬性,任何用戶均可使用。只有服務器端關閉,保存的屬性纔會失效。
以上4個屬性都有共同的屬性操作方法:
3.深入研究page屬性的範圍
其實pageContext類中還有一種設置屬性的方法,這種方法可以指定page中設置的屬性的保存範圍。
與之前setAttribute()方法不同的是,在其參數中多出了一個int類型的形參scope,它使用來指定屬性的保存範圍。不過在開發中比較少用。
4.pageContext對象
5.request對象
6.response對象
(1)Cookie
7.session對象
在實際開發中,session對象最常用的的功能就是完成用戶的登陸、註銷等常用功能。每一個session對象表示不同的訪問用戶,且session只能用在http協議中。
8.Application對象
Application對象是javax.servlet.ServletContext接口的實例化對象,表示的是整個servlet的上下文,ServletContext代表的是整個容器的操作。
(1)注意:
request.getRealPath()
這個方法已經不推薦使用了。
下面就是替代它的方法:
request.getSession().getServletContext().getRealPath()
(1)從request獲取各種路徑總結
getRealPath("/") //得到虛擬目錄對應的絕對路徑
getRealPath("url"); // 虛擬目錄映射爲實際目錄
getRealPath("./"); // 網頁所在的目錄
getRealPath("../"); // 網頁所在目錄的上一層目錄
getContextPath(); // 應用的web目錄的名稱
9. web安全性及config對象
config 對象的主要功能是取得一些初始化的配置信息。
10.out對象
out對象是javax.servlet.jsp.JspWriter 的實例化對象,主要是完成頁面的輸出操作,主要使用print()、println()操作。但現實開發中很少用out對象去實現頁面的輸出,一般使用表達式完成輸出操作。除此之外,out對象還定義了以下兩個方法:
11.JavaBeans
(1)JavaBean概述
(2)Myeclips創建的Web項目的目錄結構:
(3)導入JavaBean的兩種方式
①採用import語句
語法格式:<%@ page import = “包名.類名”%>
注意:導入類後要實例化該類,該類爲Person類。然後就跟在設定和獲取屬性就跟Java裏面一樣。
Eg: Person person = new Person();
person.setName("HYQ");
person.setAge(23);
②使用<jsp:useBean>指令
使用該指令不用手動實例化對象,指令中已經自動幫我們實例化對象了,指令中的id爲對象名。
(4)修改配置後自動加載
該文件爲server.xml文件,位於tomcat的conf文件夾下。
(5)使用<jsp:setPropert>設置屬性
使用它可以更方便的設置屬性。以下是一個例子。
我們發現,使用Java的setter來設置屬性比較麻煩,要用到request.set()方法。我們可以用<jsp:setPropert>來方便的設置屬性
使用的時候,表單的文本控件要和JavaBean類中的變量名一致,纔可以自動匹配。
(6)使用<jsp:getPropert>獲取屬性
(7)JavaBean的保存範圍以及刪除
12.DAO設計模式