個人學習之路_第三十二章_HttpServletRequest

HttpServletRequest程序員

取得請求行的信息:瀏覽器

返回值 : String getMethod() 請求方式服務器

返回值 : String getRequestURI()請求目標框架

返回值 : String getProtocol() 使用協議工具

取得請求頭的信息:spa

返回值 : String getHeader(String name)
傳一個請求頭的key值,返回一個請求頭的value值對象

返回值 : String getHeaderNames(String name) 生命週期

取得全部請求頭的名字,封裝在枚舉集合中字符串

獲取獲得的對象,有連個方法,hasMoreElement() 判斷集合中是否存在下一個元素, nextElement() 取得下一個元素(請求頭的名字)get

取得請求體的信息(重要)


返回值 : String getParameter(String name)

 

返回值 : String[] getParameterValues(String name)

取得提交的內容中一個名對個值得參數

返回值 : Enumeration<String> getParameterNames()

返回值 : Map<String,String[]> getParameterMap()

獲取因此得請求體中全部的參數,將參數封裝到Map集合中,其中key是提交的name,字符串數據是值.

注意前面兩個方法是給程序員用的,後面兩個方法給框架用(通用代碼)(BeanUtils工具類)


設置字符集

setCharacterEncoding("UTF-8") :只能解決POST方式提交的參數中的中文亂碼問題

內部轉發

getRequestDispatcher("WebPath").forward(req,resp)
注意:目標頁面是從服務器內部轉跳到過去的,因此沒有產生新的請求和響應,因此目錄頁面使用和當前頁面相同的請求和響應對象.因此
才能實現連個頁面之間使用Request域傳遞數據.

域對象:生命週期是請求到達服務器時產生,響應發回給瀏覽器後就銷燬的.


重定向和內部轉發的區別:

重定向:先由瀏覽器發送請求到服務器,服務器發回指令,要求瀏覽器發送請求到指定的URL.
實際上瀏覽器發了兩個請求,因此瀏覽器的地址欄上是第二個頁面的地址
因此此時按F5刷新頁面,則提交到第二個頁面的請求
由於到第二個頁面是新的請求,因此第一個頁面和第二個頁面之間想要傳遞數據,不能用Request域.

內部轉發:由瀏覽器發送請求道服務器,服務器內部把此請求轉到第二個頁面中,第二個頁面運行結果後,把最終的頁面結果
響應給瀏覽器. 因此瀏覽器中的地址欄是沒有變化的,仍是第一個頁面的地址,但瀏覽器中顯示的頁面內容是第二個頁面的內容.
由於第一個頁面和第二個頁面使用的都是訪問第一個頁面的請求和響應對象,因此在傳遞數據時,能夠使用Request域.

優先使用內部轉發,只有第一個頁面是表單提交,且第二個頁面有須要刷新的需求時,才使用重定向.(須要顯示一次性的數據時,
因此必須用Request域來在兩個頁面之間傳遞數據,因此必須內部轉發)

BeanUtils工具類

popuplate(Object bean , Map)

日期轉換: 1,建立一個日期轉換器對象 2.設置轉換器的格式 3.註冊轉換器(告訴BeanUtils工具,在把字符串轉成什麼類型時使用此轉換器)

相關文章
相關標籤/搜索