1. 程式人生 > >java-web學習筆記(第二章)

java-web學習筆記(第二章)

直接 () destroy 垃圾回收 垃圾回收器 troy 鏈接 ems cse

第二章:Servlet基礎
1,創建Servlet有幾種方式?處理http請求最好使用哪種方式?
  1>直接實現Servlet接口和它的所有方法;
  2>繼承GenericServlet類,實現service()方法;
  3>繼承HttpServlet類,重寫所求類型的方法(doGet(),doPost())常用第三種方法
2,Servlet的生命周期
  1>加載和實例化;
  2>初始化,Servlet容器調用每個Servlet的init()方法對Servlet實例進行初始化
  3>處理請求,容器會為該請求創建一個請求對象和一個響應對象並調用service()方法處理請求;
  4>銷毀,當容器需要終止Servlet時會調用Servlet的destroy()方法釋放正在使用的資源,被垃圾回收器回收
3,重定向和請求轉發的區別?
  1>重定向前後創建不同的請求對象,請求轉發前後共享同一個請求對象
  2>重定向訪問過程結束後會改變瀏覽器的url地址,請求轉發不會改變
  3>請求轉發只能將請求轉發給同一個web應用中的組件,重定向不僅可以重定向到當前應用程序中的其他資源,還可以重定向到同一站點上的其他應用程序中的資源或其他站點的資源
  4>重定向:你找我借錢,我沒錢,但是我讓你去找別人借錢。(再“借錢”這個動作由你自己去執行)
  5>請求轉發:你找我借錢,我沒錢,但是我可以幫你去找別人借錢。(再“借錢”這個動作由我去執行
4,JSP中的路徑問題(請求轉發和重定向)
  1>jsp中經常會遇到圖片打不開或404錯誤,其實是路徑沒有寫對,解決方法?
    1》考慮鏈接或表單提交的路徑
    2》重定向或請求轉發的路徑
  2>具體解決方案:
    1 表單提交和鏈接都是從客戶端請求請求而來/指的Tomcat的根目錄,寫絕對路徑應該寫成"/當前Web程序根名稱/資源名" 如"/WebModule1/jsp1.jsp","/bbs/servlet/MyServlet"
    2 重定向和轉發的路徑問題寫相對路徑重定向和轉發沒有區別,重定向response.sendRedirect("")是服務器向客戶端發送一個請求頭信息,由客戶端再請求一次服務器.因此情況同上述1的一樣,轉發是在服務器內部進行的,寫絕對路徑/開頭指的是當前的Web應用程序.絕對路徑寫法就是"/jsp1.jsp"或"/servlet/MyServlet"

java-web學習筆記(第二章)