SpringMVC学习(三)------页面的四种跳转方式

天涯浪子 提交于 2020-03-07 06:46:17

转发和重定向

  1. 转发是服务器行为,重定向是客户端行为。
  2. 转发HTTP请求一次,地址栏不发生变化,请求域数据不会丢失
    重定向HTTP请求至少两次,地址栏发生变化显示新的地址,请求域信息丢失。

例如:
转发:小明给班主任打电话询问什么时候开学,但是班主任不知道,将手机转发给了旁边的教导主任让其解答。(小明这边显示的是班主任的电话,但和他数据交流的却是教导主任,之前的信息都没有挂断)
重定向:小明给班主任打电话询问什么时候开学,但是班主任不知道,告诉他教导主任知道,小明挂断电话给教导主任拨去。(挂断之前的请求,再来一个新的请求)

第一种------请求转发页面

  1. 创建一个新的项目,添加配置jar包、编写配置文件、在web.xml文件注册springmvc、创建包的结构
    在这里插入代码片在这里插入图片描述
  2. 新建编写一个SpringmvcAction.java,一个main.jsp
  3. 在index.jsp编写第一种页面跳转方式

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <!--第一种跳转方式:请求转发页面-->
  <a href="${pageContext.request.contextPath}/admin/one.action">请求转发</a><br>
  </body>
</html>

  1. 在SpringmvcAction.java中编写控制器
package com.oracle.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;


@Controller//表明此类是一个控制器
@RequestMapping("/admin")
public class SpringmvcAction {
    @RequestMapping("/one")
    public String one(){
        //请求转发页面(默认转发方式)
        System.out.println("这是请求转发页面");
        return "main";
    }
}

  1. 运行结果
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  2. 为了简单明了将tomcat中的工程名去掉
    在这里插入图片描述

第二种-----请求转发action

  1. 在index.jsp中编写新的跳转方式,在SpringmvcAction.java中编写新的控制器
<!--第二种跳转方式:请求转发action页面-->
<a href="${pageContext.request.contextPath}/admin/two.action">请求转发action</a><br>
@RequestMapping("/two")
    public String two(){
        //请求转发action
        System.out.println("这是请求转发action");
        return "forward:/fore/other.action";
    }
  1. 创建编写一个控制器SpringMvcOther.java
package com.oracle.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("fore")
public class SpringMvcOther {
    @RequestMapping("other")
    public String other(){
        System.out.println("经过了other.action");
        return "main";
    }

}

  1. 运行结果
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

第三种------重定向页面

  1. 在index.jsp中编写新的跳转方式,在SpringmvcAction.java中编写新的控制器
 <!--第三种跳转方式:重定向页面-->
<a href="${pageContext.request.contextPath}/admin/three.action">重定向页面</a><br>
 @RequestMapping("/three")
    public String three(){
        //重定向页面
        System.out.println("这是重定向面");
        return "redirect:/main.jsp";
    }
  1. 运行结果
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

第四种------重定向action

1.在index.jsp中编写新的跳转方式,在SpringmvcAction.java和SpringMvcAction.java中编写新的控制器

<!--第四种跳转方式:重定向action-->
<a href="${pageContext.request.contextPath}/admin/four.action">重定向action(+转发)</a><br>
<a href="${pageContext.request.contextPath}/admin/five.action">重定向action显示main.jsp</a><br>

SpringmvcAction.java

 @RequestMapping("/four")
    public String four(){
        //重定向页面
        System.out.println("这是重定向action");
        return "redirect:/fore/other.action";
    }
    @RequestMapping("/five")
    public String five(){
        //重定向页面
        System.out.println("这是重定向action");
        return "redirect:/fore/others.action";
    }

SpringMvcAction.java

   @RequestMapping("others")
    public String others(){
        System.out.println("经过了others.action");
        return "redirect:/main.jsp";
    }
  1. 运行结果
    在这里插入图片描述重定向action+转发
    在这里插入图片描述重定向action
    在这里插入图片描述
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!