溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

springmvc中如何實(shí)現(xiàn)轉(zhuǎn)發(fā)請(qǐng)求和重定向

發(fā)布時(shí)間:2020-11-10 16:22:54 來源:億速云 閱讀:192 作者:Leah 欄目:編程語言

springmvc中如何實(shí)現(xiàn)轉(zhuǎn)發(fā)請(qǐng)求和重定向?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

請(qǐng)求重定向與請(qǐng)求轉(zhuǎn)發(fā)的比較,HttpServletResponse.sendRedirect方法和RequestDispatcher.forward方法都可以讓瀏覽器獲得另外一個(gè)URL所指向的資源,但兩者的內(nèi)部運(yùn)行機(jī)制有很大的區(qū)別。

1.RequestDispatcher.forward方法只能將請(qǐng)求轉(zhuǎn)發(fā)給同一個(gè)Web應(yīng)用中的組件,HttpServletResponse.sendRedirect不僅可以重定向到當(dāng)前應(yīng)用程序的其他資源,還可以重定向到同一個(gè)站點(diǎn)上的其他應(yīng)用程序的資源,甚至是使用絕對(duì)URL重定向到其他站點(diǎn)的資源。對(duì)于sendRedirect如果傳遞的URL以”/”開頭,他是相對(duì)于整個(gè)Web站點(diǎn)的根目錄;對(duì)于forward如果傳遞的URL以”/”開頭,它是相對(duì)于當(dāng)前Web應(yīng)用程序的根目錄。

2.sendRedirect對(duì)瀏覽器做出的響應(yīng)是重新發(fā)出對(duì)另外一個(gè)URL的訪問請(qǐng)求,forward在服務(wù)器端內(nèi)部將請(qǐng)求轉(zhuǎn)發(fā)給另外一個(gè)資源,瀏覽器只知道發(fā)出了請(qǐng)求并得到了響應(yīng)結(jié)果

3.forward的調(diào)用者與被調(diào)用者之間共享相同的request對(duì)象和response對(duì)象,他們屬于同一個(gè)訪問請(qǐng)求和響應(yīng)過程;sendRedirect的調(diào)用者與被調(diào)用者使用各自的request和response對(duì)象,屬于兩個(gè)獨(dú)立的訪問請(qǐng)求和響應(yīng)過程

請(qǐng)求重定向以redirect:開頭,請(qǐng)求轉(zhuǎn)發(fā)以forward:開頭;

樣例如下:

@RequestMapping(value="/users")
@Controller
public class UserController {

  @RequestMapping(value="/queryuser",method = RequestMethod.GET)
  public String queryuser(Model model) throws Exception {
    return "forward:/users/uc";
  }

  @RequestMapping(value="/uc",method = RequestMethod.GET)
  public String quer(Model model) throws Exception {

    return "redirect:/#/home";
  }

   @RequestMapping(value = "/save", method = RequestMethod.GET) 
    public ModelAndView saveUser(HttpServletRequest request, HttpServletResponse response) throws Exception { 
      ModelAndView mv = new ModelAndView("forward:/users/uc");//默認(rèn)為forward模式 
//    ModelAndView mv = new ModelAndView("redirect:/#/home");//redirect模式 
      return mv; 
    } 
} 

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI