Response对象||案例:重定向||forward 转发 和 redirect 重定向的 区别||路径写法
Response對象功能:設置響應消息
?? ?1. 設置響應行
?? ??? ?1. 格式:HTTP/1.1 200 ok
?? ??? ?2. 設置狀態碼:setStatus(int sc)?
?? ?2. 設置響應頭:setHeader(String name, String value)?
?? ??? ?
?? ?3. 設置響應體:
?? ??? ?* 使用步驟:
?? ??? ??? ?1. 獲取輸出流
?? ??? ??? ??? ?* 字符輸出流:PrintWriter getWriter()
?? ??? ??? ??? ?* 字節輸出流:ServletOutputStream getOutputStream()
?? ??? ??? ?2. 使用輸出流,將數據輸出到客戶端瀏覽器
案例:?1. 完成重定向
? ? ? ? ? ? 2. 服務器輸出字符數據到瀏覽器
? ? ? ? ? ? 3. 服務器輸出字節數據到瀏覽器
? ? ? ? ? ? 4. 驗證碼
完成重定向
?? ??? ?* 重定向:資源跳轉的方式
?? ??? ?* 代碼實現:
?? ??? ??? ?//1. 設置狀態碼為302
?? ? ? ? ? ?response.setStatus(302);
?? ? ? ? ? ?//2.設置響應頭location
?? ? ? ? ? ?response.setHeader("location","/day15/responseDemo2");
?? ? ? ? ? ?//簡單的重定向方法
?? ? ? ? ? ?response.sendRedirect("/day15/responseDemo2");
?
?? ??? ?* 重定向的特點:redirect
?? ??? ??? ?1. 地址欄發生變化
?? ??? ??? ?2. 重定向可以訪問其他站點(服務器)的資源
?? ??? ??? ?3. 重定向是兩次請求。不能使用request對象來共享數據
?? ??? ?* 轉發的特點:forward
?? ??? ??? ?1. 轉發地址欄路徑不變
?? ??? ??? ?2. 轉發只能訪問當前服務器下的資源
?? ??? ??? ?3. 轉發是一次請求,可以使用request對象來共享數據
?? ??? ?
?? ??? ?* forward 和 ?redirect 區別
?? ??? ???
?路徑寫法:
?? ??? ??? ?1. 路徑分類
?? ??? ??? ??? ?1. 相對路徑:通過相對路徑不可以確定唯一資源
?? ??? ??? ??? ??? ?* 如:./index.html
?? ??? ??? ??? ??? ?* 不以/開頭,以.開頭路徑
?? ??? ??? ??? ??? ?* 規則:找到當前資源和目標資源之間的相對位置關系
?? ??? ??? ??? ??? ??? ?* ./:當前目錄
?? ??? ??? ??? ??? ??? ?* ../:后退一級目錄
?? ??? ??? ??? ?2. 絕對路徑:通過絕對路徑可以確定唯一資源
?? ??? ??? ??? ??? ?* 如:http://localhost/day15/responseDemo2?? ??? ?/day15/responseDemo2
?? ??? ??? ??? ??? ?* 以/開頭的路徑
?? ??? ??? ??? ??? ?* 規則:判斷定義的路徑是給誰用的?判斷請求將來從哪兒發出
?? ??? ??? ??? ??? ??? ?* 給客戶端瀏覽器使用:需要加虛擬目錄(項目的訪問路徑)
?? ??? ??? ??? ??? ??? ??? ?* 建議虛擬目錄動態獲取:request.getContextPath()
?? ??? ??? ??? ??? ??? ??? ?* <a> , <form> 重定向...
?? ??? ??? ??? ??? ??? ?* 給服務器使用:不需要加虛擬目錄
?? ??? ??? ??? ??? ??? ??? ?* 轉發路徑
總結
以上是生活随笔為你收集整理的Response对象||案例:重定向||forward 转发 和 redirect 重定向的 区别||路径写法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTTP协议 ----响应消息
- 下一篇: 案例:文件下载需求:1. 页面显示超链接