SpringBoot 重定向

本文介绍了HTTP重定向的三种方式:直接返回值、ModelAndView对象和Response重定向,并详细阐述了301和302重定向的区别。301用于永久转移,适合域名切换和HTTPS迁移;而302是临时重定向,常用于未登录用户的个人中心跳转。此外,还提到了302重定向与网址劫持的关系,解释了网址劫持的原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简介

重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。

二、重定向三种方式

1、直接返回值中加重定向:“redirect:要访问的网址”;

这种方法需要在maven中配置spring-boot-starter-thymeleaf模板,并且需要页面和项目在一个位置,类似于jsp的跳转。

public String toRedirect() {
    //"redirect:要访问的相对网址或绝对网址?参数名="+参数值;
    return "redirect:要访问的相对网址或绝对网址?参数名="+参数值;
}

2、用modelAndView对象来进行,和上一中方法类似,仅可以跳转项目内页面。

 public ModelAndView toRedirect() {
        ModelAndView modelAndView = new ModelAndView(需要跳转的页面路径);
        return modelAndView;
    }

3、使用response的重定向功能,此方法可以跳转外网url。

public void toRedirect(HttpServletResponse response) throws Exception{
	response.sendRedirect("https://www.baidu.com");
}

三、301与302重定向区别

301永久重定向使得搜索引擎在抓取新内容的同时将旧的网址替换为重定向后的网址。

302临时性定向使得搜索引擎会抓去新的内容却保留旧的网址。

适用场景区别:

301:域名切换HTTP迁移到HTTPS
302:未登录用户访问个人中心时重定向到登录页面404页面提示后跳转到首页

备注:302与网址劫持

网址劫持和302重定向有什么关系呢?这个要从搜索引擎如何处理302重定向说起。
当从网址A做一个302重定向到网址B时,服务器隐含的意思是网址A可能会重新启用。正常情况,大部分搜索引擎应当去抓取302重定向之后的网址B。但是可能由于B网址相对于A网址过于复杂,这样搜索引擎就会觉得网址A对用户更加友好,因而在重定向之后任然显示旧的网址A,但是显示网址B的内容。这就是网址劫持。
在平常使用手机的过程当中,有时候会发现网页上会有浮动的窗口,或者访问的页面不是正常的页面,这就可能是运营商通过某种方式篡改了用户正常访问的页面。其中有一种方式就是通过返回302重定向让用户浏览器跳转到另外的网址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

才疏学浅的浅~

谢谢老板,老板大气^_^

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值