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

转自:

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

重定向:
     我们将用户的定向到另一个视图(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/**" />

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值