您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

SpringMVC转发和重定向有什么区别?

2024/3/12 7:30:26发布17次查看
在servlet中,转发和重定向是由request和response完成的。两者之间的区别请看我之前的文章。那么在springmvc中是如何完成的呢?
/**转发**/ 
@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转发和重定向有什么区别?的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product