1. 程式人生 > >Servlet(2/3)---登陸失敗重新整理

Servlet(2/3)---登陸失敗重新整理

案例一返回的使用者不存在時,返回失敗的提醒,案例二將需求稍作更改,登陸失敗後,提示“使用者名稱密碼不匹配”三秒後重新跳轉回登入頁面 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 定時重新整理:

常見響應頭:(格式)Refresh: (秒數) ; url=跳轉的路徑 --定時重新整理

如何修改響應頭:(都是key value 相對應的) response.setHeader(String key,String value); 設定字串形式的響應頭 response.addHeader(String key,String value); 追加響應頭,若之前設定過則為追加,若之間沒有設定過,則為設定。

實現定時重新整理: response.addHeader(“Refresh”,“3;url=http://localhost:8080/index.jsp”);

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 案例三:統計登入成功的人數 servlet 是一個單例項多執行緒的 ,在使用者登入成功之後獲取之前登陸成功的人數+1 . ServletContext: 上下文/全域性管理者 每個 Java 虛擬機器的每個“Web 應用程式”都有一個上下文 常用方法: setAttribute(String key,Object obj) //設定值 Object getAttribute(String key) //獲取值 和map 很相似 removeAttribute(String key ) //移除值

獲取全域性管理者:this.getservletContext(); 步驟分析: 1.在專案啟動的時候,初始化登入次數(void init()) 2.在登陸成功之後,獲取全域性管理者,獲取登陸成功的總人數,將次數+1 再將值儲存回去 3.當訪問網頁showServlet 時在獲取全域性管理者,獲取登入次數,顯示在頁面上。

知識點:ServletConfig ServletContext 獲取檔案路徑 域物件

servletConfig : servlet的配置物件 配置檔案物件 在sevlet 的方法中有一個getServletConfig() 還有帶參的init 函式的引數就是ServletConfig() 作用: 1.獲取servlet 的名稱:String getServletName() :獲取的是配置檔案web.xml 中的名稱 2.獲取當前servlet 的初始化引數: String getInitParameter(String key):通過名稱獲取指定的引數值 Enumeration getInitParameterNames(): 獲取所有的引數名稱 初始化引數在web.xml 配置檔案中,servlet 標籤下 的子標籤init-param

3.★★★獲取全域性管理者:ServletContext context = getServletContext(); //設定初始化引數 在這裡插入圖片描述(瞭解) 方法演示: 在這裡插入圖片描述 ServletConfig 是由伺服器在建立servlet 的同時建立的,在呼叫init(ServletConfig config ) 初始化servlet ,被servlet 的getServletConfig 函式呼叫。

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ★★ServletContext:伺服器的全域性管理者(上下文) 是一個專案的引用。當專案啟動的時候,伺服器為每一個web 專案建立了一個servletContext 物件,當專案被移除或者是伺服器關閉的時候servletContext 被銷燬 作用:獲取全域性的初始化引數 2.共享資源(XXXAttribute()) 3.獲取檔案資源 4.其他資源 獲取servletContext : getServletConfig().getServletContext(); getServletContext(); 它的底層其實就是getServletConfig().getServletContext(); 常用方法:()瞭解 1. String getInitParameter(String key):通過名稱獲取指定的引數值 Enumeration getInitParameterNames(): 獲取所有的引數名稱 獲取的引數是全域性引數,引數存放在根標籤下的子標籤:context-param 子標籤 <param-name <param-value 2.獲取檔案資源String getRealPath(String path) : 獲取檔案部署到tomcat 上的路徑(在電腦上的真實路徑) getRealPath("/") : 獲取的目錄是專案的路徑 getRealParh("/1.text") : 獲取的路徑是專案下的1.txt 資源的路徑 InputStream getSourceAsStream(String path): 以流的形式返回一個檔案 傳入的引數都是在tomcat 上的地址(傳入“/”就是專案的真實地址)

獲取檔案的mime型別:大型別/小型別 String getMimeType(String 檔名稱) 例如:傳入的檔名:1.jpg 返回的結果 :image/jpeg 底層的執行:擷取檔案的字尾名,在配置檔案中有在檔案字尾名和mime 型別的對應關係 關於檔案的流形式返回和檔案的mime 型別都應用在檔案下載上

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 域物件!!!★★★ 在全域性管理者 **ServletContext 的資源共享(xxxAttribute())**中講到過 在Java 中一共要學習三個域物件:就是在它存活的時間裡都可以向裡面存取資料(就可以理解為一個map 集合) ServletContext: 常用方法:setAttribute(String key , String value) addAttribute(String key,String value) getAttribute(String key) servletContext 的生命週期:在伺服器建立servlet 的時候為每一個web 建立一個ServletContext 物件,在servlet 被移除或者是伺服器關閉的時候結束宣告。 存放的是共享資料

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 獲取檔案的路徑:通過類載入器獲取(直接記住) 類名.class.getClassloader().getResource(“檔名”).getPath(); 檔案在classes檔案目錄下,這種方式不依賴ServletContext