200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > Java学习记录 04SpringMVC 重定向和转发

Java学习记录 04SpringMVC 重定向和转发

时间:2024-08-10 03:06:59

相关推荐

Java学习记录 04SpringMVC 重定向和转发

SpringMVC 重定向和转发

Spring MVC 请求方式 分为:转发、重定向 2种。在Servlet中 请求方式处理都是在 controller层 !!!

转发

客户浏览器发送 http 请求,在内部方法中完成请求处理和转发动作。在这里转发的路径必须是同一个 Web 容器下的 URL,其不能转向到其他的 Web 路径上,中间传递的是自己的容器内的 request

重定向

客户浏览器发送 http 请求,Web 服务器接受后发送 302 状态码响应及对应新的 URL地址 给客户浏览器,客户浏览器发现是 302 响应,则自动再发送一个新的 http 请求,请求 URL 是新的地址,服务器根据此请求寻找资源并发送给客户

重定向与转发的区别

重定向会改变地址,requset存储的数据会丢失

转发时地址会显示请求页面的地址,保存了页面的数据重定向两次请求 两次响应

转发一次请求 一次响应

应用测试

应用前提&说明

NavigationController类 控制器

@Controller@RequestMapping ("/navigation")public class NavigationController {····}

navigationTest.jsp文件响应形式

<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head><title>navigationTest</title></head><body><h1> 跳转 & 重定向 测试</h1><h2>参数测试</h2><h3>requestScope 作用域</h3><div><span>id: ${requestScope.id}</span> <br><span>name: ${requestScope.name}</span></div><h3>pageScope 作用域</h3><div><span>id: ${pageScope.id}</span> <br><span>name: ${pageScope.name}</span></div><h3>sessionScope 作用域</h3><div><span>id: ${sessionScope.id}</span> <br><span>name: ${sessionScope.name}</span></div></body></html>

转发

/*** String 形式转发* 应用前提:前缀 需要 forward关键字*/@RequestMapping("forwardString")public String forwardString(HttpServletRequest request) {request.setAttribute("id" , 1);request.setAttribute("name" , "柏竹");//return "jsp/navigationTest.jsp"return "forward:/jsp/navigationTest.jsp";}

/*** ModelAndView 形式转发* 应用前提:前缀 需要 forward关键字*/@RequestMapping("forwardMAV")public ModelAndView forwardMAV(){ModelAndView mv = new ModelAndView();mv.addObject("id",2);mv.addObject("name","智乃");mv.setViewName("forward:/jsp/navigationTest.jsp");return mv;}

/*** String 形式转发 控制器*/@RequestMapping("forwardString2")public String forwardString2(HttpServletRequest request) {request.setAttribute("id" , 6);request.setAttribute("name" , "纱雾");return "forward:/navigation/forwardString";}

/*** ModelAndView 形式转发 控制器*/@RequestMapping("forwardMAV2")public ModelAndView forwardMAV2(){ModelAndView mv = new ModelAndView();mv.addObject("id",7);mv.addObject("name","琪露诺");mv.setViewName("forward:/navigation/forwardMAV");return mv;}

重定向

/*** String 重定向*/@RequestMapping("redirectString")public String redirectString(HttpServletRequest request) {request.setAttribute("id",4);request.setAttribute("name","黑猫");return "redirect:/jsp/navigationTest.jsp";}

/*** ModelAndView 重定向*/@RequestMapping("redirectMAV")public ModelAndView redirectMAV() {ModelAndView mv = new ModelAndView();mv.addObject("id",5);mv.addObject("name","蕾姆");mv.setViewName("redirect:/jsp/navigationTest.jsp");return mv;}

//重定向 控制器/*** String 控制器重定向*/@RequestMapping("redirectString2")public String redirectString2(HttpServletRequest request) {request.setAttribute("id",8);request.setAttribute("name","香子兰");return "redirect:/navigation/redirectString";}

/*** ModelAndView 控制器重定向*/@RequestMapping("redirectMAV2")public ModelAndView redirectMAV2() {ModelAndView mv = new ModelAndView();mv.addObject("id",9);mv.addObject("name","黑子");mv.setViewName("redirect:/navigation/redirectMAV");return mv;}

ModelAndView mv = new ModelAndView();mv.addObject("id",9);mv.addObject("name","黑子");mv.setViewName("redirect:/navigation/redirectMAV");return mv;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。