1. 程式人生 > >【SpringMVC】【請求轉發和重定向】

【SpringMVC】【請求轉發和重定向】

檢視解析器

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/view/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
  • forward:請求轉發(去前後綴)
  • redirect:重定向.

基於返回mv物件

mv.setViewName("str");

  • str=”forward : 路徑”        請求轉發到一個jsp中
  • str=”forward : controller的對映”  請求轉發到一個controller方法中
  • str=”redirect: 路徑”         請求轉發到一個非WEB-INF的jsp

常用:

  • str=”redirect : controller的對映”  重定向到一個controller方法中
  • str=”XXX”            根據前後綴,請求轉發到 字首/XXX.字尾

1:請求轉發到jsp(預設的)

    @RequestMapping("/method1")
    public ModelAndView method1(HttpServletRequest req,ModelAndView mv) throws
Exception{ //請求轉發到/WEB-INF/view/main.jsp mv.setViewName("main"); //預設加入前後綴 return mv; } //訪問非檢視解析器的檢視時,用forward @RequestMapping("/method3") public ModelAndView method3(HttpServletRequest req,ModelAndView mv) throws Exception{ mv.setViewName("forward:WEB-INF/view/main.jsp"
); //不新增前後綴 return mv; }

2:請求轉發到controller(必須用forward)

    @RequestMapping("/method4")
    public ModelAndView method4(HttpServletRequest req,ModelAndView mv) throws Exception{
        mv.setViewName("forward:method1");  
        return mv;
    }

3:重定向到controller

    @RequestMapping("/method5")
    public ModelAndView method5(HttpServletRequest req,ModelAndView mv) throws Exception{
        mv.setViewName("redirect:method3");  
        return mv;
    }

4:重定向到jsp

    @RequestMapping("/method5")
    public ModelAndView method5(HttpServletRequest req,ModelAndView mv) throws Exception{
        mv.setViewName("redirect:index.jsp");  
        return mv;
    }

基於返回字串

由於返回是字串,所以mv的設定將沒有作用,要用req來傳送值

  • str=”forward : 路徑”        請求轉發到一個jsp中
  • str=”forward : controller的對映”  請求轉發到一個controller方法中
  • str=”redirect: 路徑”         請求轉發到一個非WEB-INF的jsp

常用:

  • str=”redirect : controller的對映”  重定向到一個controller方法中
  • str=”XXX”            根據前後綴,請求轉發到 字首/XXX.字尾
    @RequestMapping("method1")
    public String method1() throws Exception{
        return "redirect:method2";
    }

    @RequestMapping("method2")
    public String method2() throws Exception{
        return "forward:WEB-INF/view/main.jsp";
    }

相關推薦

SpringMVC請求轉發定向

檢視解析器 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

javaweb請求轉發定向(面試經常問)

重定向 //之前的寫法 response.setStatus(302); response.setHeader(“Location”, “login_success.html”); //重定向寫法: 重新定位方向 引數即跳轉的位置 response.sendRe

jsp學習之——關於請求轉發定向的形象理解

本質 url 博文 客戶端 style 讓我 esp 方法 rect 1.重定向:是屬於客戶端行為,實現方法:response.sendRedirect() 從本質上講等同於兩次請求,前一次的請求對象不會保留,在瀏覽器上的直觀表現是——地址欄的URL地址會改變。 2.請求轉

servlet學習(四)請求轉發定向

一、請求轉發和重定向兩者之間的區別 請求轉發:一次請求,位址列資訊不變。       重定向:兩次請求,位址列資訊會發生改變。 使用時機: 1.如果表單中有資料,而資料又比較重要,不能重複提交,建議使用重定向。 2.如果servlet接受後

web---請求轉發定向的區別

如圖:左為forward的請求流程圖,右為redirect的請求流程圖 1. forward 是一次完整的請求和響應,是伺服器內控制權的轉發。可以由servlet接收請求,但把返回響應的權利通過forward給jsp來完成 2. redirect會在第一次響應返回時用狀態碼30

JSP 請求轉發定向的區別

1,請求的轉發:呼叫request.getRequestDispatcher("path").forword(,)方法 2,請求的重定向:呼叫response.sendRedirect(location)方法 區別: 1,請求的轉發:位址列是最初請求的位址列 請求的重定向:地址不再是最初請求的位址列,是最後

response、請求轉發定向

response響應物件 提供的方法: void addCookie(Cookie cookie); 伺服器向客戶端增加cookie物件 void sendRedirect(String location) throws IOException; 頁面跳轉的一種方式(重定向) void se

Servlet(五):請求轉發定向

請求轉發:   問題:    伺服器在接收到瀏覽器的請求後,僅僅使用一個 Servlet進行請求處理,會造成不同的Servlet邏輯程式碼 冗餘,Servlet的職責不明確。   解決:    使用請求轉發。  特點:    一次請求    位址列資訊不改變。   Request 物件作用域

請求轉發定向

一、請求重定向(二次請求) (1)之前的寫法 response.setStatus(302); response.setHeader("Location", "login_success.html")

請求轉發定向 及區別

LoginServlet: package com.test.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet

WEB基礎問題:請求轉發定向的區別是什麼?

看了網上很多回答,基本都講的比較長和詳細,但是該問題一般在面試中問的比較多, 先總結如下: 基本的區別是:請求轉發是在伺服器內部轉發,重定向約等於於從外部訪問伺服器 請求轉發因為是從伺服器內部轉發,所以請求轉發能夠訪問WEB-INF資料夾下的資源 這點重定向無法辦

jsp的基本語法——請求轉發定向

jsp的基本語法: 1. jsp表示式:提供一種方式,可直接讓Java變數或表示式的計算輸出到客戶端的簡化方式,它將要輸出的變數   或表示式直接封裝在<%= %>中。 2.方法:   Object setAttribute(String name):獲取指定的屬性   Enumertion ge

spring mvc 請求轉發定向

請求重定向與請求轉發的比較,HttpServletResponse.sendRedirect方法和RequestDispatcher.forward方法都可以讓瀏覽器獲得另外一個URL所指向的資源,但兩者的內部執行機制有很大的區別。 1.RequestDisp

請求轉發定向的區別

一、請求轉發和重定向 請求轉發:request.getRequestDispatcher(URL地址).forward(request, response) 處理流程: 客戶端傳送請求,Servlet做出業務邏輯處理。 Servlet呼叫forword()方法,伺服器

簡述請求轉發定向的區別

重定向與轉發的區別:1.重定向訪問伺服器兩次,轉發只訪問伺服器一次。2.重定向可以看見目標頁面的URL,轉發只能看見第一次訪問的頁面URL,以後的工作都是有伺服器來做的。3.重定向跳轉後必須加上return,要不然頁面雖然跳轉了,但是還會執行跳轉後面的語句,轉發是執行了跳轉頁

JSP中請求轉發定向區別中文亂碼問題解決方法

 1.請求的轉發和重定向:  1).本質區別:請求的轉發只發出了一次請求,而重定向則發出了兩次請求。  具體:    ①請求轉發:位址列是初次發出請求的地址      請求的重定向:位址列不再是初

關於請求轉發定向(二)--- 定向

關於重定位,則沒有那麼複雜,因為重定位是不允許傳值的,不過可以進行web程式內部的定向和web程式之間的定向 response.sendRedirect("/face/huangServlet");如程式碼,該重定向定向到了一個名叫face專案的huangServlet裡

javaweb請求轉發定向

一、請求的轉發: 1、呼叫HttpServletRequest的getRequestDispatcher()方法獲取RequestDispathcher物件; 呼叫getRequestDispatch

Servlet中Request請求轉發定向遇到的亂碼問題

已經把專案的文字編碼格式改成了utf-8,但還是在轉發的時候遇到亂碼。 先把我的程式碼拷上來 package com.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.