SpringMVC中的转发和重定向
代码模拟:
说明全在注释中,方便直接,一定要看!!!!
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>mvc</servlet-name>
<!--除了jsp之外的所有请求资源-->
<url-pattern>/</url-pattern>
<!-- <url-pattern>*.action</url-pattern>-->
</servlet-mapping>
</web-app>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--扫描注解@Controller-->
<context:component-scan base-package="com.controller"></context:component-scan>
<!--@RequestMapping-->
<mvc:annotation-driven></mvc:annotation-driven>
<!--静态资源的放行-->
<!--mapping:指代的是网络的地址 location:指代的是放行本地的什么资源 -->
<mvc:resources mapping="/js/**" location="/js/"></mvc:resources>
<!--自定义视图解析器-->
<!--<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/"></property>
<property name="suffix" value=".jsp"></property>
</bean>-->
</beans>
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<%--转发到指定的页面中--%>
<jsp:forward page="WEB-INF/update.jsp"></jsp:forward>
</body>
</html>
update.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>update.jsp</h3>
</body>
</html>
package com.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.View;
import org.springframework.web.servlet.view.InternalResourceView;
import org.springframework.web.servlet.view.RedirectView;
@Controller
public class MyCon2 {
@RequestMapping("demo4")
public ModelAndView demo4() {
ModelAndView modelAndView = new ModelAndView();
//转发一
modelAndView.setViewName("forward:/index.jsp");
//重定向一
modelAndView.setViewName("redirect:/index.jsp");
//转发二
modelAndView.setView(new InternalResourceView("/index.jsp"));
//重定向二
modelAndView.setView(new RedirectView("/AAAAA_war_exploded/index.jsp"));
return modelAndView;
}
@RequestMapping("demo3")
public View demo3() {
//转发的跳转
//View v =new InternalResourceView("/index.jsp");
//重定向的跳转
View v = new RedirectView("/AAAAA_war_exploded/index.jsp");
return v;
}
/**
* 重定向:
* return "redirect:index.jsp";
* <p>
* 相对路径: 支持 -相对于当前的浏览器地址
* <p>
* 根路径: /--当前项目
* <p>
* 绝对路径:http://www.baidu.com 支持
*/
@RequestMapping("demo2")
public String demo2() {
System.out.println("重定向跳转");
return "redirect:http://www.baidu.com";
}
/**
* 转发
* <p>
* return "index.jsp"; 这种方式默认的就是转发
* <p>
* return "forward:/index.jsp"; 全写方式
* <p>
* 路径支持
* 相对路径:相对与当前浏览器的地址 ../
* <p>
* 根路径: / ---当前项目 推荐使用
* <p>
* 绝对路径:不支持的--最大的范围就是当前的项目
*/
@RequestMapping("demo1")
public String demo1() {
return "/index.jsp";
}
}
运行结果:
都可以成功跳转,不好演示…手动滑稽
版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: