springmvc-请求转发重定向(携带参数)

本文详细解析了请求转发和重定向的区别与应用场景。通过实际代码示例展示了这两种技术如何在Spring MVC框架中实现,包括如何传递数据以及它们对客户端的影响。

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

请求转发:

1.浏览器发出一次请求,获取到一次响应。

2.浏览器地址未发生变化,认识第一次请求。

3.服务器内跳转。

4.资源2中可以去到用户请求的数据。

5.可以将请求转发到WEB-INF的资源

6.只能将请求到WEB-INF


重定向:

1.浏览器发出二次请求,获取到二次响应。

2.浏览器地址发生改变,变味了第二次请求的地址。

3.外跳转

4.资源2 不能获取 用户 提交数据,但可以获取到第二次由浏览器自动发生请求的携带数据。

5.不能将请求到WEB-INF资源

6.可以将请求重定向到 web外部资源。



package com.abc.handlers;


import java.util.Map;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;


import com.abc.beans.Student;




@Controller
@RequestMapping("/some")
public class SomeHandler {



@RequestMapping("/first.do")
    public ModelAndView doFirst(String name, int age) {

return new ModelAndView("forward:second.do");请求转发,不写则默认请求转发

}


@RequestMapping("/second.do")     显示数据
    public ModelAndView doSecond( String name,int age) {
ModelAndView mv = new ModelAndView();
mv.addObject("pname", name);
mv.addObject("page", age);
mv.setViewName("redirect:third.do");       重定向到third.do
//return new ModelAndView("redirect:third.do");
return mv;

}
@RequestMapping("/third.do") 携带数据
    public ModelAndView doThird() {
      
return new ModelAndView("/welcome.jsp");

}



}















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值