servlet的生命週期
- Web容器加載Servlet類並實例化(默認延遲加載)(1次)
- 運行init方法進行初始化(1次)
- 用戶請求該Servlet,請求到達服務器後運行其service方法(每次)
- service方法運行請求對應的do**方法(每次)
- 調用destory方法銷燬實例(1次)
轉發forward和重定向redirect的區別
- 轉發是容器控制的跳珠,服務器直接訪問目的地址,把目的地址的內容讀取出來發送給瀏覽器,瀏覽器不知道請求內容來自哪裏,瀏覽器地址欄不變
- 重定向是服務器接收到請求後,返回一個狀態碼給瀏覽器,瀏覽器請求新地址,地址欄改變
- 轉發效率更高,儘量用轉發,但是轉發不能跳轉到其他服務器,重定向可以跳轉到其他服務器
Jsp九大內置對象
- request : 向客戶端請求數據
- respones : 封裝了jsp產生的響應,然後發送到客戶端以響應客戶的請求
- pageContext : 爲Jsp頁面包裝頁面的上下文,管理對屬於jsp中的特殊可見部分的已經命名對象的訪問
- session :用來保存每個用戶的信息,以便跟蹤每個用戶的操作狀態
- application : 應用程序對象
- out : 向客戶端輸出對象
- config : servlet的配置對象
- page :jsp實現類的實例
- exception : 反映運行的異常
Get和Post的區別
- Get將表單中的數據按照param-value方式拼接到url後面以?連接,參數間以&連接
- Post將表單中的數據放在form數據體中進行傳輸
- Get在傳輸中數據對用戶可見,Post對用戶不可見
- Get能傳輸的數據量小,因爲受URL長度限制
- Get限制From表單的數據必須是ASCII字符,而Post支持整個字符集
Jsp的四個域對象
- pageContext : 代表與一個頁面有關的對象和屬性(同一頁面內)
- request : 代表與web客戶機發出的一個請求相關的對象和屬性,一個請求可以跨域多個頁面(同一請求內)
- session : 代表與客戶機的一個用戶體驗相關的對象和屬性。一個web會話通常會有多次請求(同一會話內)
- application : 代表與整個web應用程序相關的對象和屬性,跨域整個web應用, 如果不手動刪除,就會一直存在(同一應用內)
MVC設計思想
- MVC是基於Java的Web應用系統架構模式,即Model、View、Controller分離設計
- Model:業務處理邏輯的模塊,每一種處理一個模塊(理解爲service、dao)
- View:負責頁面顯示,顯示Model處理結果返回給用戶,實現數據到頁面轉換的過程(理解爲jsp)
- Controller:負責每個請求的分發,把From數據傳遞給Model處理,把處理結果的數據傳遞給View(理解爲controller,servlet)
Session和Cookie的區別
- session保存在服務器,cookie保存在客戶端瀏覽器
- session中保存的是對象,cookie中保存的是字符串
- session不能區分路徑,同一個用戶在訪問一個網站期間,所有的session在任何地方都可以訪問到;cookie不能區分路徑,cookie中如果設置了路徑參數,那麼不同路徑下的cookie互相訪問不到
- session需要cookie才能正常起作用。如果客戶端禁止cookie,則session失效