Java 中的转发和重定向
1 | 转发: |
springMVC 中的应用
springMVC中常用到redirect来实现重定向,但是使用场景各有需求,重定向中可能需要在url中拼接参数,可能需要返回model。springMVC用RedirectAttributes 解决问题。
首先,在controller中重定向用以下方式:
1 | return “redirect:/index”; |
此时只是重定向到简单的地址;
使用RedirectAttributes 来设置重定向页面的参数。 springMVC会自动拼接URL。
该对象的两个方法:
1 | 1:addAttribute |
1 | 2:addFlashAttribute |
服务端跳转和客户端跳转
服务端跳转指的是地址栏内容不变,客户端浏览器的地址栏不会显示目标地址的URL。 所以跳转与否,客户端是不知道的,属于一次request。
客户端跳转指的是地址栏的内容发生了改变,客户端向服务器发送请求后,服务端再给客户端一个响应,然后客户端根据服务端给的响应中的URL再次向服务端发送请求,所以是两次请求。第二次跳转的时候,已经出了request的属性范围了。
如果使用的是服务器端跳转,则执行到跳转语句时会立刻进行跳转,如果是客户端跳转,则是在整个页面执行完后才执行跳转。
java中的服务端跳转
1 | request.getRequestDispatcher("sucess.jsp").forward(request,response) |
客户端跳转
1 | response.sendRedirect("fail.jsp") 所有页面执行完之后再进行跳转 |
跳转方法
1 | 1: redirect方式 |
Author: corn1ng
Link: https://corn1ng.github.io/2017/10/27/Java 中的转发和重定向/
License: 知识共享署名-非商业性使用 4.0 国际许可协议