Spring MVC中如何进行转发和重定向呢?

Java-框架王 SpringMVC 发布时间:2021-05-14 05:57:17 阅读数:12765 1
重定向:
     我们将用户的定向到另一个视图(jsp)中处理,此操作是一个客户端行为,类似与url的链接操作
转发:
     将用户的请求转发到另一个视图或controller处理,此操作是一个服务器端行为,请求中的信息会一起转发至新的新的对象中,不会因为转发而造成信息丢失 
注意事项:
    转发是后端行为(服务器级别),重定向是一个前端行为(客户端级别)

一、转发详解

          当浏览器发送 http 请求,Web 服务器收到此请求,
    运用Java的内部方法在容器内进行转发的请求和处理,并将转发后所生成的信息发送给浏览器
   转发所产生的效果
        浏览器进行一次请求操作,而返回的确是容器内其它页面的内容,客户端无任何变化 ,
        转发的内容只能为容器内的信息

二、重定向过程

    当浏览器发送Http请求,tomcat发送302状态码即新的url给浏览器,客户端根据302自动发送新的http请求,此时浏览器中显示的为新url
    此处重定向的url可为任意url

Spring MVC的说明

     在Spring MVC 框架中,控制器类中处理方法的 return 语句默认情况下为一个转发(转发视图) 
@RequestMapping("/userlist")
public String userList() {
return "userList"; //转发至userList.jsp
}

例:
Spring MVC 框架中,重定向与转发

package com.java265.springmvc;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/index")
public class IndexController {
@RequestMapping("/print")
public String print() {
//转发到一个请求方法(同一个控制器类可以省略/index/)
return "forward:/index/isShowInfo";
}

@RequestMapping("/isShowInfo")
public String isShowInfo() {
//重定向到一个请求方法
return "redirect:/index/printInfo";
}

@RequestMapping("/printInfo")
public String printInfo() {
//转发到一个视图
return "printInfo";
}
}

注意事项:
     
在Spring MVC框架中,
无论转发还是重定向,都需符合视图解析器的配置(springmvc.xml),
   如直接转发到一个不需要 DispatcherServlet 的资源,如:

return "forward:/html/test.html";

则需要使用 mvc:resources 配置:

<mvc:resources location="/html/" mapping="/html/**" />

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/SpringMVC/2021-05-14/433.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者