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