springmvc中的转发和重定向

转发:客户端发送一次请求到服务器,服务器处理后转发到服务器内另一个servlet,处理后再返回响应.客户端的url地址不会发生改变,能共享request作用域;

重定向:客户端发送一次请求到服务器,服务器返回的响应中包含一个新的url地址;客户端根据响应中的url地址再一次发送请求,地址栏url改变,服务器再次返回响应;总共有两次请求,两次响应;不能共享request作用域;

转发是服务器内部行为,重定向是客户端行为;

一.转发到视图(jsp)(用的多)

1.在handler中,返回值若为字符串,springmvc会走视图解析器.转发到视图页面

例如:return "xxx";

二.转发到handler

在handler中,返回值若为"forward:xxx",springmvc会将其转发到一个requestMapping为xxx的handler;但是客户端只发送了一次请求,地址栏的url不会改变

例如:return "forward:xxx";

三.重定向到handler(用的多)

在handler中,返回值若为"redirect:xxx",springmvc会将请求重定向到requestMapping为xxx的handler;客户端地址栏的url会变为xxx;

四.重定向到视图(用得少)

在handler中,返回值若为"redirect:/???/xxx.jsp";会直接重定向到该视图.前后为视图解析器中定义的prefix和suffix;但是没啥意义,因为拿不到请求作用域的数据;

五.重定向到另一个controller的handler中

返回值为:"redirect:/controller2的requestMapping/handler2的requestmapping";

你可能感兴趣的:(服务器,http,前端)