JAVA后端重定向用spring mvc 一般为return “redirect:/url” ,原生重定向为response.sendRedirect(“url”), 有时候spring mvc在重定向的时候会生成一个SESSIONID在浏览器的地址栏以url重写的方式出现,一般为JSESSIONID=***的格式,这时可以用原生重定向response.sendRedirect(“url”)避免这种现象。本文介绍一下302重定向两种方式。
1. 返回redirect
这种case通常适用于返回视图的接口,在返回的字符串前面添加redirect:方式来告诉Spring框架,需要做302重定向处理。
使用这种方式的前提是不能在接口上添加@ResponseBody注解,否则返回的字符串被当成普通字符串处理直接返回,并不会实现重定向。
2. HttpServletResponse重定向
直接调用javax.servlet.http.HttpServletResponse#sendRedirect,并传入需要重定向的url即可。
3. 小结
这里主要介绍了两种常见的后端重定向方式,都比较简单,这两种方式也有自己的适用场景(当然并不绝对)在返回视图的前面加上redirect的方式,更加适用于视图的跳转,从一个网页跳转到另一个网页。
HttpServletResponse#sendRedirec的方式更加灵活,可以在后端接收一次http请求生命周期中的任何一个阶段来使用,比如有以下几种常见的场景:
eg:某个接口要求登录时,在拦截器层针对所有未登录的请求,重定向到登录页面;
eg:全局异常处理中,如果出现服务器异常,重定向到定制的500页面
不支持的请求,重定向到404页面。