欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringMVC中redirect重定向(帶參數(shù))的3種方式

 更新時(shí)間:2024年07月12日 11:25:04   作者:一勺菠蘿丶  
Spring MVC中做form表單功能提交時(shí),防止用戶客戶端后退或者刷新時(shí)重復(fù)提交問題,需要在服務(wù)端進(jìn)行重定向跳轉(zhuǎn),本文主要介紹了SpringMVC中redirect重定向(帶參數(shù))的3種方式,感興趣的可以了解一下

Spring MVC中做form表單功能提交時(shí),防止用戶客戶端后退或者刷新時(shí)重復(fù)提交問題,需要在服務(wù)端進(jìn)行重定向跳轉(zhuǎn),其中redirect是直接跳轉(zhuǎn)到其他頁(yè)面,有以下3種方法進(jìn)行重定向。

redirect重定向流程

客戶發(fā)送一個(gè)請(qǐng)求到服務(wù)器,服務(wù)器匹配servlet,這都和請(qǐng)求轉(zhuǎn)發(fā)一樣,servlet處理完之后調(diào)用了sendRedirect()這個(gè)方法,這個(gè)方法是response的方法,所以,當(dāng)這個(gè)servlet處理完之后,看到response.senRedirect()方法,立即向客戶端返回這個(gè)響應(yīng),響應(yīng)行告訴客戶端你必須要再發(fā)送一個(gè)請(qǐng)求,去訪問test.jsp,緊接著客戶端受到這個(gè)請(qǐng)求后,立刻發(fā)出一個(gè)新的請(qǐng)求,去請(qǐng)求test.jsp,這里兩個(gè)請(qǐng)求互不干擾,相互獨(dú)立,在前面request里面setAttribute()的任何東西,在后面的request里面都獲得不了。可見,在sendRedirect()里面是兩個(gè)請(qǐng)求,兩個(gè)響應(yīng)。

1. response.sendRedirect重定向跳轉(zhuǎn)

@RequestMapping(value="/testredirect",method = { RequestMethod.POST, RequestMethod.GET })  
public ModelAndView testredirect(HttpServletResponse response){  
    response.sendRedirect("/index");
    return null; 
}

2. ViewResolver直接跳轉(zhuǎn)

不帶參數(shù)

@RequestMapping(value="/testredirect",method = { RequestMethod.POST, RequestMethod.GET })  
public  String testredirect(HttpServletResponse response){  
    return "redirect:/index";  
} 

帶參數(shù)

@RequestMapping("/testredirect")
public String testredirect(Model model, RedirectAttributes attr) {
	attr.addAttribute("test", "51gjie");//跳轉(zhuǎn)地址帶上test參數(shù)
    attr.addFlashAttribute("u2", "51gjie");//跳轉(zhuǎn)地址不帶上u2參數(shù)
	return "redirect:/user/users";
}
  • 使用RedirectAttributes的addAttribute方法傳遞參數(shù)會(huì)跟隨在URL后面,如上代碼即為http:/index.action?test=51gjie
  • 使用addFlashAttribute不會(huì)跟隨在URL后面,會(huì)把該參數(shù)值暫時(shí)保存于session,待重定向url獲取該參數(shù)后從session中移除,這里的redirect必須是方法映射路徑,jsp無(wú)效。你會(huì)發(fā)現(xiàn)redirect后的jsp頁(yè)面中b只會(huì)出現(xiàn)一次,刷新后b再也不會(huì)出現(xiàn)了,這驗(yàn)證了上面說(shuō)的,b被訪問后就會(huì)從session中移除。對(duì)于重復(fù)提交可以使用此來(lái)完成.
  • spring mvc設(shè)置下RequestMappingHandlerAdapter 的ignoreDefaultModelOnRedirect=true,這樣可以提高效率,避免不必要的檢索。

3. ModelAndView重定向

不帶參數(shù)

@RequestMapping(value="/restredirect",method = { RequestMethod.POST, RequestMethod.GET })  
public  ModelAndView restredirect(String userName){  
    ModelAndView  model = new ModelAndView("redirect:/main/index");    
    return model;  
}

帶參數(shù)

@RequestMapping(value="/toredirect",method = { RequestMethod.POST, RequestMethod.GET })  
public  ModelAndView toredirect(String userName){  
    ModelAndView  model = new ModelAndView("/main/index");   
    model.addObject("userName", userName);  //把userName參數(shù)帶入到controller的RedirectAttributes
    return model;  
}

4. 直接跳轉(zhuǎn)某網(wǎng)頁(yè)

import javax.servlet.http.HttpServletResponse;

HttpServletResponse httpServletResponse = (HttpServletResponse) servletResponse;
httpServletResponse.sendRedirect("http://srip.cpu.edu.cn/#/admins")

總結(jié)

1, redirect重定向可以跳轉(zhuǎn)到任意服務(wù)器,可以用在系統(tǒng)間的跳轉(zhuǎn)。
2, Spring MVC中redirect重定向,參數(shù)傳遞可以直接拼接url也可以使用RedirectAttributes來(lái)處理,由于是不同的請(qǐng)求,重定向傳遞的參數(shù)會(huì)在地址欄顯示,所以傳遞時(shí)要對(duì)中文編碼進(jìn)行處理。

到此這篇關(guān)于SpringMVC中redirect重定向(帶參數(shù))的3種方式的文章就介紹到這了,更多相關(guān)SpringMVC redirect重定向內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Springboot+jwt實(shí)現(xiàn)在線用戶功能(示例代碼)

    Springboot+jwt實(shí)現(xiàn)在線用戶功能(示例代碼)

    這篇文章主要介紹了Springboot+jwt實(shí)現(xiàn)在線用戶功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • Eclipse安裝配置方法圖文教程

    Eclipse安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了Eclipse安裝配置方法圖文教程,感興趣的小伙伴們可以參考一下
    2016-06-06
  • SpringBoot整個(gè)啟動(dòng)過程的分析

    SpringBoot整個(gè)啟動(dòng)過程的分析

    今天小編就為大家分享一篇關(guān)于SpringBoot整個(gè)啟動(dòng)過程的分析,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • Java微服務(wù)分布式調(diào)度Elastic-job環(huán)境搭建及配置

    Java微服務(wù)分布式調(diào)度Elastic-job環(huán)境搭建及配置

    Elastic-Job在配置中提供了JobEventConfiguration,支持?jǐn)?shù)據(jù)庫(kù)方式配置,會(huì)在數(shù)據(jù)庫(kù)中自動(dòng)創(chuàng)建JOB_EXECUTION_LOG和JOB_STATUS_TRACE_LOG兩張表以及若干索引,來(lái)記錄作業(yè)的相關(guān)信息
    2023-02-02
  • Java讀取制表符文本轉(zhuǎn)換為JSON實(shí)現(xiàn)實(shí)例

    Java讀取制表符文本轉(zhuǎn)換為JSON實(shí)現(xiàn)實(shí)例

    在Java開發(fā)中,處理各種數(shù)據(jù)格式是常見的任務(wù),本文將介紹如何使用Java讀取制表符文本文件,并將其轉(zhuǎn)換為JSON格式,以便于后續(xù)的數(shù)據(jù)處理和分析,我們將使用Java中的相關(guān)庫(kù)來(lái)實(shí)現(xiàn)這個(gè)過程,并提供詳細(xì)的代碼示例
    2024-01-01
  • Java數(shù)據(jù)結(jié)構(gòu)之雙向鏈表圖解

    Java數(shù)據(jù)結(jié)構(gòu)之雙向鏈表圖解

    這篇文章主要為大家詳細(xì)介紹了Java數(shù)據(jù)結(jié)構(gòu)之雙向鏈表,文中圖解分析的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 詳解SpringBoot如何刪除引用jar包中的無(wú)用bean

    詳解SpringBoot如何刪除引用jar包中的無(wú)用bean

    為了趕速度和直接將之前多模塊的maven項(xiàng)目中的部分模塊,直接以jar包的形式引入到新項(xiàng)目中了,雖然省去了不少開發(fā)時(shí)間,導(dǎo)致項(xiàng)目臃腫,啟動(dòng)很慢。本文將用@ComponentScan注解去實(shí)現(xiàn)讓項(xiàng)目只加載自己需要的bean,需要的可以參考一下
    2022-06-06
  • Java方法的參數(shù)傳遞機(jī)制詳解

    Java方法的參數(shù)傳遞機(jī)制詳解

    這篇文章主要介紹了Java方法的參數(shù)傳遞機(jī)制詳解,對(duì)于Java初學(xué)者來(lái)說(shuō),剛學(xué)習(xí)Java的時(shí)候可能經(jīng)常會(huì)聽到調(diào)用方法時(shí)參數(shù)的值傳遞與引用傳遞,但是,實(shí)際上Java中方法的參數(shù)傳遞機(jī)制只有值傳遞,需要的朋友可以參考下
    2024-01-01
  • java  線程詳解及線程與進(jìn)程的區(qū)別

    java 線程詳解及線程與進(jìn)程的區(qū)別

    這篇文章主要介紹了java 線程詳解及線程與進(jìn)程的區(qū)別的相關(guān)資料,網(wǎng)上關(guān)于java 線程的資料很多,對(duì)于進(jìn)程的資料很是,這里就整理下,需要的朋友可以參考下
    2017-01-01
  • java讀取文件字符集示例方法

    java讀取文件字符集示例方法

    這篇文章主要介紹了java讀取文件字符集的示例,需要的朋友可以參考下
    2014-02-02

最新評(píng)論