/**转发**/
@requestmapping(/login.do)
public string login(httpservletrequest request,httpservletresponse response){
request.setattribute(message, hello);
return forward:/index.do; //forward在跳转后可以取到message值
}
index.do为另外一个path,也就是requestmapping中的值。
@requestmapping(/index.do)
public string index(httpservletrequest request,httpservletresponse response){
return welcome;
}
/**重定向**/
@requestmapping(/logout.do)
public string logout(httpservletrequest request,httpservletresponse response){
request.setattribute(message, hello);
return redirect:/register.do; //redirect在跳转后无法取到message值
}
register.do为另外一个path,也就是requestmapping中的值。
@requestmapping(/register.do)
public string register(httpservletrequest request,httpservletresponse response){
return register;
}
另外forward跳转后地址栏url不会改变 而redirect会改变
当我们使用重定向时,在后台传到页面的参数全部丢失,除非放在session中。所以在springmvc有一种解决方式如下:
@requestmapping(“/update.do”)
public string update( redirectattributes redirectattributes) {
redirectattributes.addflashattribute(message, 操作成功);
return redirect:/admin/user;
}
在重定向的页面中,可以获取到message的值,这是由于spring将message放入session中了。
以上就是springmvc转发和重定向有什么区别?的详细内容。