java-servlet-轉(zhuǎn)發(fā)AND路徑(詳解)
1.轉(zhuǎn)發(fā):
a) 什么是轉(zhuǎn)發(fā)?
一個web組件將未完成的任務(wù)交給另一個web組件繼續(xù)做.
通常是一個servlet將數(shù)據(jù)獲取之后轉(zhuǎn)交給jsp進行展現(xiàn).
注:web組件值得是servlet或者jsp
b) 如何轉(zhuǎn)發(fā)?
1.將數(shù)據(jù)綁定到request對象上.
request.setatteribute(string name,obj)
注:name綁定名 obj:綁定值
obj request.getattr…(string name);//依據(jù)綁定名獲取綁定值.
2.獲取轉(zhuǎn)發(fā)器
requestdispatatcher rd = request.getrequestdispatcher(string url);
注:轉(zhuǎn)發(fā)的目的地,比如一個jsp
3.轉(zhuǎn)發(fā)
rd.forward(request,response)
注:轉(zhuǎn)發(fā)的本質(zhì)是一個web組件通知容器調(diào)用另外一個web組件,(即調(diào)用service方法,所以需要傳遞request,response)
c) 特點:
1.轉(zhuǎn)發(fā)的目的地有限制(要求同一個web應(yīng)用中的某個地址)
2.轉(zhuǎn)發(fā)之后,瀏覽器地址不變.
d) 比較重定向和轉(zhuǎn)發(fā):
1.轉(zhuǎn)發(fā)所涉及的各個web組件可以共享request和response.重定向不可以.
注:request和response的生存時間并不長(當服務(wù)器收到請求后會立即創(chuàng)建這兩個對象,當響應(yīng)發(fā)送完畢,會立即銷毀這兩個對象)即這兩個對象的生存時間為一次請求與響應(yīng)期間存在.
2.轉(zhuǎn)發(fā)之后瀏覽器地址欄地址不變(要求同一個web應(yīng)用中的某個地址),重定向沒有任何限制且地址會改變.
3.路徑問題:
a) 什么是路徑問題?
鏈接,表單提交,重定向和轉(zhuǎn)發(fā)都需要填寫一個路徑,比如
<from action=”add.do”>如何填寫這個路徑/
b) 相對路徑
1.什么是相對路徑?
不以”/”開頭的路徑.
c) 絕對路徑
1.什么是相對路徑?
以”/”開頭的路徑.
2.如何寫絕對路徑?
鏈接,表單提交,重定向沖應(yīng)用名開始寫,轉(zhuǎn)發(fā)從應(yīng)用名開始寫.
z注:不要直接將應(yīng)用名寫在路徑里面,應(yīng)該使用request.getcontextpath()獲取應(yīng)用名.
以上這篇java-servlet-轉(zhuǎn)發(fā)AND路徑(詳解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Boot通過Redis實現(xiàn)防止重復(fù)提交
表單提交是一個非常常見的功能,如果不加控制,容易因為用戶的誤操作或網(wǎng)絡(luò)延遲導(dǎo)致同一請求被發(fā)送多次,本文主要介紹了Spring Boot通過Redis實現(xiàn)防止重復(fù)提交,具有一定的參考價值,感興趣的可以了解一下2024-06-06rabbitmq使用springboot實現(xiàn)direct模式(最新推薦)
這篇文章主要介紹了rabbitmq使用springboot實現(xiàn)direct模式,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07SpringBoot+ENC實現(xiàn)密鑰加密的使用示例
本文主要介紹了SpringBoot+ENC實現(xiàn)密鑰加密的使用示例,主要是為了將配置信息從應(yīng)用程序代碼中分離出來,以提高安全性和可維護性,感興趣的可以了解一下2024-07-07SpringBoot?@GroupSequenceProvider注解實現(xiàn)bean多屬性聯(lián)合校驗的示例代碼
這篇文章主要介紹了SpringBoot?@GroupSequenceProvider注解實現(xiàn)bean多屬性聯(lián)合校驗,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08