SpringMVC的学习6(转发forward与redirect的应用、访问静态资源)

1、forward转发
在方法返回结果加上forward前缀,转发再转发则方法返回结果加上forward:/forward

@Controller
public class ForWardController {
    @RequestMapping("/forward")
    public String forward1(){
        System.out.println("forword1");
        return "forward:/hello.jsp";
    }

    @RequestMapping("/forward2")
    public String forward2(){
        System.out.println("forward2");
        return "forward:/forward";
    }

转发的特点:
(1)地址栏请求不会发生变化,还是显示第一次的请求地址,如再上面代码forward2()中,转发后再次转发,地址栏显示的地址仍是.../forward2
(2)请求的次数,有且仅有一次
(3)请求域中的数据不会丢失,及存在request、session等中的数据不会丢失。
(4)更目录:localhost:8080/项目地址/项目的访问地址

2、redirect重定向
应用与转发是一样的,在方法的返回结果中添加redirect:/返回地址,也可在重定向后再次重定向,方法返回结果加上redirect:/redirect

@Controller
public class Redirect {

    @RequestMapping("/redirect1")
    public String redirectTest1(){
        System.out.println("redirect1");
        return "redirect:/index.jsp";
    }

    @RequestMapping("/redirect2")
    public String redirectTest2(){
        System.out.println("redirect2");
        return "redirect:/redirect";
    }
}

redirect特点:
(1)地址栏的地址发生变化,显示最新发送请求的地址
(2)请求次数两次
(3)请求域中的数据会丢失,因为是不同的请求
(4)根目录:localhost:8080/不包含项目名称

3、访问静态资源
在访问静态资源的时候,如jsp文件访问项目中的图片,是访问不到的,因为DispacherServlet中没有对应静态资源的处理逻辑,而全部请求都是交给DipatcherServlet来处理,所以这里需要添加默认,也就是servlet原本默认的处理方式,添加以后动态请求仍是无法访问,
需要另外一个标签配合使用

<mvc:default-servlet-handler></mvc:default-servlet-handler>
<mvc:annotation-driven></mvc:annotation-driven>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值