转发和重定向中携带变量

本文详细介绍了在Spring MVC中如何在转发和重定向中携带及获取变量。通过原生HttpServletRequest类、Map类、Model类以及@RequestAttribute注解,实现了转发时的变量传递。同时,讲解了重定向时利用RedirectAttributes类的addAttribute和addFlashAttribute方法,以及通过拼接URL和模拟Session来携带变量的方法。提供了具体的代码示例和测试结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转发和重定向中携带变量

有时候我们需要在转发中或者重定向中携带变量,并且在转发或者重定向到的请求方法中获取变量,Spring MVC都可以帮我们做到这两点

转发中携带变量

当我们需要在转发中携带变量和获取变量时,我们可以使用以下几种方式

原生HttpServletRequest类

使用原生的HttpServletRequest类,可以做到在转发中携带变量,也可以使用他来获取变量

携带变量时,将HttpServletRequest类添加在请求方法的参数列表中,然后调用setAttribute方法就可以将变量以键值对的方式保存在request域中

@Controller
public class MyController {
   
   

    @RequestMapping("/user")
    public String queryUser(HttpServletRequest request) {
   
   
        request.setAttribute("name","cong");
        request.setAttribute("age",18);
        return "forward:/other";
    }
}

获取request域中的变量也是同样的使用方式,将HttpServletRequest类添加在请求方法的参数列表中,然后调用getAttribute方法

@Controller
public class MyController {
   
   

    @RequestMapping("/user")
    public String queryUser(HttpServletRequest request) {
   
   
        request.setAttribute("name", "cong");
        request.setAttribute("age", 18);
        return "forward:/other";
    }

    @RequestMapping("/other")
    @ResponseBody
    public Map<String, Object> other(HttpServletRequest request) {
   
   
        Object name = request.getAttribute("name");
        Object age = request.getAttribute("age");
        HashMap<String, Object> result = new HashMap<>();
        result.put
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值