關(guān)于Java中重定向傳參與取值
Java中重定向傳參與取值
重定向:不僅可以重定向到當(dāng)前應(yīng)用程序中的其他資源,還可以重定向到同一個(gè)站點(diǎn)上的其他應(yīng)用程序中的資源,甚至是使用絕對(duì)URL重定向到其他站點(diǎn)的資源
1、重定向基本語(yǔ)法
@PostMapping(value = "/test")
public String index() {
return "redirect:index";
}當(dāng)我們請(qǐng)求 test 時(shí),重定向到 index 請(qǐng)求中,當(dāng)然,也可以直接重定向到頁(yè)面 redirect:index.html
2、重定向傳參
@PostMapping(value = "/test")
public String index(RedirectAttributes attributes) {
attributes.addFlashAttribute("msg", "提示信息");
return PasswordUtils.redirectTo("/index");
}我們?cè)谥囟ㄏ驎r(shí),借助了 RedirectAttributes 對(duì)象傳入了 msg 參數(shù)
注意:
addAttribute,會(huì)將參數(shù)放入路徑傳遞,例如:127.0.0.1:8080/index?msg=提示信息
addFlashAttribute,不會(huì)把參數(shù)放入路徑傳遞,例如:127.0.0.1:8080/index
3、重定向接收參數(shù)
@RequestMapping(value = "/index")
public ModelAndView index(@ModelAttribute("msg") String msg) {
ModelAndView mav = new ModelAndView("index");
// 頁(yè)面提示語(yǔ)
mav.addObject("msg", msg);
return mav;
}我們使用 @ModelAttribute 接收了參數(shù) msg,將參數(shù)賦值給 ModelAndView 對(duì)象,傳給客戶端
JAVA 中重定向
一、重定向:一個(gè)web資源收到客戶端的請(qǐng)求后,通知客戶端去訪問另外一個(gè)web資源,這稱之為請(qǐng)求重定向。
運(yùn)用場(chǎng)景:如用戶登錄。
實(shí)現(xiàn)方式:通過(guò)response來(lái)實(shí)現(xiàn):
如:
1.response.sendRedirect("/ServletDemo/Login.jsp");
二、轉(zhuǎn)發(fā):一個(gè)web資源收到客戶端的請(qǐng)求后,通知服務(wù)器調(diào)用另外一個(gè)web資源進(jìn)行處理。
運(yùn)用場(chǎng)景:MVC設(shè)計(jì)模式
實(shí)現(xiàn)方式:通過(guò)request對(duì)象來(lái)實(shí)現(xiàn):
如:
1.request.getRequestDispatcher("/Login.jsp").forward(request,response);
三、重定向與轉(zhuǎn)發(fā)的區(qū)別:
1.重定向是在客戶端完成的,轉(zhuǎn)發(fā)是在服務(wù)器完成的
2.轉(zhuǎn)發(fā)只訪問一次服務(wù)器,重定向訪問兩次服務(wù)器,所以相比較而言,轉(zhuǎn)發(fā)對(duì)于服服務(wù)器的壓力更小;
3.轉(zhuǎn)發(fā)只能將請(qǐng)求轉(zhuǎn)發(fā)給同一個(gè)web應(yīng)用中的組件,重定向還可以重定向到其他網(wǎng)站;
4.轉(zhuǎn)發(fā) "/"的根目錄是當(dāng)前web應(yīng)用下的根目錄,而重定向是整個(gè)web站點(diǎn)的根目錄,如上面的示例代碼中,同樣跳轉(zhuǎn)到Login.jsp界面,但重定向卻要在前面加上項(xiàng)目名;
5.重定向訪問過(guò)程結(jié)束后,瀏覽器地址欄中顯示的URL會(huì)發(fā)生改變變成重定向的目標(biāo)URL,而轉(zhuǎn)發(fā)則不會(huì);
6.RequestDispatcher.forward方法的調(diào)用者與被調(diào)用者之間共享相同的request對(duì)象和response對(duì)象,它們屬于同一個(gè)訪問請(qǐng)求和響應(yīng)過(guò)程.而HttpServletResponse.sendRedirect方法調(diào)用者與被調(diào)用者使用 各自的request對(duì)象和
response對(duì)象,它們屬于兩個(gè)獨(dú)立的訪問請(qǐng)求和響應(yīng)過(guò)程。
重定向與轉(zhuǎn)發(fā)的區(qū)別,通俗的來(lái)講,打個(gè)比方:張三找李四借錢,李四沒有錢,李四讓張三自己去找王五借,這是重定向;張三找李四借錢,李四雖然沒有錢,但李四從王五那借來(lái)錢,然后再借給張三,這是轉(zhuǎn)發(fā)。
到此這篇關(guān)于Java中重定向傳參與取值問題的文章就介紹到這了,更多相關(guān)java重定向傳參內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot Knife4j在線API文檔框架基本使用
knife4j是為Java MVC框架集成Swagger生成Api文檔的增強(qiáng)解決方案,這篇文章主要介紹了SpringBoot中使用Knife4J在線API文檔框架,需要的朋友可以參考下2022-12-12
Java 1.8使用數(shù)組實(shí)現(xiàn)循環(huán)隊(duì)列
這篇文章主要為大家詳細(xì)介紹了Java 1.8使用數(shù)組實(shí)現(xiàn)循環(huán)隊(duì)列,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-10-10
spring security的BCryptPasswordEncoder加密和對(duì)密碼驗(yàn)證的原理分析
文章介紹了加密算法和hash算法的基本概念,以及BCryptPasswordEncoder加密和解密的原理,加密算法是可逆的,需要加鹽以保證安全性,BCryptPasswordEncoder通過(guò)生成鹽值并在加密和解密過(guò)程中使用,確保相同的明文每次加密結(jié)果不同,從而提高安全性2024-11-11
SpringBoot整合RabbitMQ處理死信隊(duì)列和延遲隊(duì)列
這篇文章將通過(guò)示例為大家詳細(xì)介紹SpringBoot整合RabbitMQ時(shí)如何處理死信隊(duì)列和延遲隊(duì)列,文中的示例代碼講解詳細(xì),需要的可以參考一下2022-05-05
Java ArrayList中存放引用數(shù)據(jù)類型的方式
這篇文章主要介紹了Java ArrayList中存放引用數(shù)據(jù)類型的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10

