首页 > 编程知识 正文

重定向跳转与转发跳转的区别,转发与重定向分别用什么方法实现

时间:2023-05-04 06:36:33 阅读:260326 作者:1788

5.1、ModeAndView(最常用的方式)

设置ModeAndView对象, 根据view的名称, 和视图解析器跳到指定的页面

页面: {视图解析器前缀} + viewName + {视图解析器后缀}

<!--视图解析器: 模板引擎 Thymeleaf Freemarker...(核心之一,不可省)--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="InternalResourceViewResolver"> <!--前缀--> <property name="prefix" value="/WEB-INF/jsp/"/> <!--后缀--> <property name="suffix" value=".jsp"/> </bean>

对应的controller类

//只要实现了Controller接口的类,说明这就是一个控制器了public class Controller01 implements Controller { @Override public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { //返回一个模型视图 ModelAndView mv = new ModelAndView(); mv.addObject("msg","Controller01"); mv.setViewName("test"); return mv; }}

5.2、ServletAPI(web的原始方法)

通过ServletAPI, 不需要视图解析器
1、通过HttpServletResponse进行输出
2、通过HttpServletResponse实现重定向
3、通过HttpServletRequest实现请求转发
![image.png](https://img-blog.csdnimg.cn/img_convert/ce608883cd291d5af3ac27114e93104f.png#clientId=udcf5c1db-737d-4&from=paste&height=464&id=u45e00c0b&margin=[object Object]&name=image.png&originHeight=410&originWidth=762&originalType=binary&ratio=1&size=195154&status=done&style=shadow&taskId=u2a97186e-c135-42cc-8ded-4618f2f6aa5&width=863)

5.3、Spring MVC(底层是ServletAPI)

通过SpringMVC来实现转发和重定向 - 无需视图解析器


测试前, 需将视图解析器注释掉

package com.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;//测试前, 需将视图解析器注释掉@Controllerpublic class MVC { @RequestMapping("/mvc1") public String test1() { //转发 return "/WEB-INF/jsp/test.jsp"; } @RequestMapping("/mvc2") public String test2() { //转发 return "forward:/WEB-INF/jsp/test.jsp"; } @RequestMapping("/mvc3") public String test3() { //重定向(视图解析器对重新定无效) return "redirect:/a.jsp"; }}

PS: 有视图解析器时, 视图解析器对重定向无效!!

@RequestMapping("/mvc3")
**public **String test3() {
_//重定向(视图解析器对重新定无效)
_return “redirect:/a.jsp”;
}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。