關(guān)于Java中重定向傳參與取值
Java中重定向傳參與取值
重定向:不僅可以重定向到當(dāng)前應(yīng)用程序中的其他資源,還可以重定向到同一個(gè)站點(diǎn)上的其他應(yīng)用程序中的資源,甚至是使用絕對URL重定向到其他站點(diǎn)的資源
1、重定向基本語法
@PostMapping(value = "/test") public String index() { return "redirect:index"; }
當(dāng)我們請求 test 時(shí),重定向到 index 請求中,當(dāng)然,也可以直接重定向到頁面 redirect:index.html
2、重定向傳參
@PostMapping(value = "/test") public String index(RedirectAttributes attributes) { attributes.addFlashAttribute("msg", "提示信息"); return PasswordUtils.redirectTo("/index"); }
我們在重定向時(shí),借助了 RedirectAttributes 對象傳入了 msg 參數(shù)
注意:
addAttribute,會將參數(shù)放入路徑傳遞,例如:127.0.0.1:8080/index?msg=提示信息
addFlashAttribute,不會把參數(shù)放入路徑傳遞,例如:127.0.0.1:8080/index
3、重定向接收參數(shù)
@RequestMapping(value = "/index") public ModelAndView index(@ModelAttribute("msg") String msg) { ModelAndView mav = new ModelAndView("index"); // 頁面提示語 mav.addObject("msg", msg); return mav; }
我們使用 @ModelAttribute 接收了參數(shù) msg,將參數(shù)賦值給 ModelAndView 對象,傳給客戶端
JAVA 中重定向
一、重定向:一個(gè)web資源收到客戶端的請求后,通知客戶端去訪問另外一個(gè)web資源,這稱之為請求重定向。
運(yùn)用場景:如用戶登錄。
實(shí)現(xiàn)方式:通過response來實(shí)現(xiàn):
如:
1.response.sendRedirect("/ServletDemo/Login.jsp");
二、轉(zhuǎn)發(fā):一個(gè)web資源收到客戶端的請求后,通知服務(wù)器調(diào)用另外一個(gè)web資源進(jìn)行處理。
運(yùn)用場景:MVC設(shè)計(jì)模式
實(shí)現(xiàn)方式:通過request對象來實(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ā)對于服服務(wù)器的壓力更??;
3.轉(zhuǎn)發(fā)只能將請求轉(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.重定向訪問過程結(jié)束后,瀏覽器地址欄中顯示的URL會發(fā)生改變變成重定向的目標(biāo)URL,而轉(zhuǎn)發(fā)則不會;
6.RequestDispatcher.forward方法的調(diào)用者與被調(diào)用者之間共享相同的request對象和response對象,它們屬于同一個(gè)訪問請求和響應(yīng)過程.而HttpServletResponse.sendRedirect方法調(diào)用者與被調(diào)用者使用 各自的request對象和
response對象,它們屬于兩個(gè)獨(dú)立的訪問請求和響應(yīng)過程。
重定向與轉(zhuǎn)發(fā)的區(qū)別,通俗的來講,打個(gè)比方:張三找李四借錢,李四沒有錢,李四讓張三自己去找王五借,這是重定向;張三找李四借錢,李四雖然沒有錢,但李四從王五那借來錢,然后再借給張三,這是轉(zhuǎn)發(fā)。
到此這篇關(guān)于Java中重定向傳參與取值問題的文章就介紹到這了,更多相關(guān)java重定向傳參內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java應(yīng)用開發(fā)之JVM運(yùn)行時(shí)內(nèi)存分析
這篇文章主要介紹了java應(yīng)用開發(fā)之JVM運(yùn)行時(shí)內(nèi)存,文中附含圖文示例內(nèi)容分析非常簡要,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-09-09Mybatis 插入一條或批量插入 返回帶有自增長主鍵記錄的實(shí)例
下面小編就為大家分享一篇Mybatis 插入一條或批量插入 返回帶有自增長主鍵記錄的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12SpringMVC實(shí)現(xiàn)文件上傳下載的全過程
對于上傳功能,我們在項(xiàng)目中是經(jīng)常會用到的,比如用戶注冊的時(shí)候,上傳用戶頭像,這個(gè)時(shí)候就會使用到上傳的功能,而對于下載使用場景也很常見,下面這篇文章主要給大家介紹了關(guān)于SpringMVC實(shí)現(xiàn)文件上傳下載的相關(guān)資料,需要的朋友可以參考下2022-01-01Spring?Cache?集成?Caffeine實(shí)現(xiàn)項(xiàng)目緩存的示例
本文主要介紹了Spring?Cache?集成?Caffeine實(shí)現(xiàn)項(xiàng)目緩存的示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12