一、跳转

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; @Controller
public class Login{ /**转发**/
@RequestMapping("/login.do")
public String login(HttpServletRequest request,HttpServletResponse response){
request.setAttribute("message", "hello");
return "forward:/index.do"; //forward在跳转后可以取到message值
}
@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值
}
@RequestMapping("/register.do")
public String register(HttpServletRequest request,HttpServletResponse response){
return "register";
}
}

  另外forward跳转后地址栏URL不会改变 而redirect会改变

二、传参

@RequestMapping(value = "update", method = RequestMethod.POST)
public String update(@Valid @ModelAttribute("user") User user,
RedirectAttributes redirectAttributes) {
accountService.updateUser(user);
redirectAttributes.addFlashAttribute("message", "更新用户" + user.getLoginName() + "成功");
return "redirect:/admin/user";
}

  为了防止用户刷新重复提交,save操作之后一般会redirect到另一个页面,同时带点操作成功的提示信息。因为是Redirect,Request里的attribute不会传递过去,如果放在session中,则需要在显示后及时清理,不然下面每一页都带着这个信息也不对。Spring在3.1才提供了这个能力,原理是放到session中,session在跳到页面后马上移除对象。所以你刷新一下后这个值就会丢掉。

springmvc中forward和redirect的更多相关文章

  1. JSP 中 forward 和 redirect 的区别_2014.12.31

    重定向,只能访问工程下(WebRoot文件夹)的页面,不能访问到内部(WEB_INF文件夹)的页面 1.从地址栏显示来说:forward浏览器显示路径不变,redirect浏览器显示路径改变forwa ...

  2. Servlet中forward和redirect的区别(转)

    forward方式:request.getRequestDispatcher("/somePage.jsp").forwardrequest, response);     red ...

  3. jsp中forward与redirect

    一.调用方式 我们知道,在servlet中调用转发.重定向的语句如下: request.getRequestDispatcher("new.jsp").forward(reques ...

  4. SERVLET API 中 forward() 与 redirect()的区别?

    答:前者仅是容器中控制权的转向, 在客户端浏览器地址栏中不会显示出转向后的地址: 后者则是完全的跳转, 浏览器将会得到跳转的地址, 并重新发送请求链接. 这样, 从浏览器的地址栏中可以看到跳转后的链接 ...

  5. jsp中forward和redirect的区别(转)

    一.调用方式 我们知道,在servlet中调用转发.重定向的语句如下: request.getRequestDispatcher("new.jsp").forward(reques ...

  6. Servlet中forward和redirect的区别

    forward方式:request.getRequestDispatcher("/somePage.jsp").forwardrequest, response);      re ...

  7. SERVLET API中forward()与redirect()的区别?

    前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址:后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接.这样,从浏览器的地址栏中可以看到跳转后的链接地址.所以,前者 ...

  8. springmvc中Controller方法的返回值

    1.1 返回ModelAndView controller方法中定义ModelAndView对象并返回,对象中可添加model数据.指定view. 1.2 返回void 在controller方法形参 ...

  9. SpringMVC中使用forward和redirect进行转发和重定向以及重定向时如何传参详解

    转自:http://blog.51cto.com/983836259/1877188 2016-11-28 09:45:59   如题所示,在SpringMVC中可以使用forward和redirec ...

随机推荐

  1. ORACLE 分区

    在建设数据仓库过程中,经常会有大量数据,短时间内表中数据量有限,查询性能还可以,但随着时间的延长,表中数据量迅速增加,查询速度就会变慢,性能下降,这时就要考虑对表进行分区. 一.oracle的分区 当 ...

  2. oracle 查询最近执行过的 SQL语句

    oracle 查询最近执行过的 SQL语句 select sql_text,last_load_time from v$sql order by last_load_time desc;   SELE ...

  3. 查看Linux下端口占用情况的命令

    在使用Linux系统的过程中,有时候会遇到端口被占用而导致服务无法启动的情况.比如HTTP使用80端口,但当启动Apache时,却发现此端口正在使用. 这种情况大多数是由于软件冲突.或者默认端口设置不 ...

  4. ArcGlobe点击IGlobeServerLayer图层读取信息

    ArcGISServer将点图层发布成Globe服务,AE开发中自定义识别工具,读取点数据信息. 1) 通过Locate方法获取图层对象,图层对象中的SearchOID就是你点中的要素Objectid ...

  5. tomcat Manger App

    转发链接,嘿嘿http://simeon.blog.51cto.com/18680/58877

  6. 【转】Win 7 下源码运行OpenERP7.0

    原文地址:Win 7 下源码运行OpenERP7.0 安装Python2.7 下载地址:http://www.python.org/getit/注:OpenERP7.0支持的Python版本最高为2. ...

  7. Selenium2Library系列 keywords 之 _SelectElementKeywords 之 unselect_from_list_by_value(self, locator, *values)

    def unselect_from_list_by_value(self, locator, *values): """Unselects `*values` from ...

  8. Java之--Java基础知识

    一.软件基础知识 1.软件:一系列按特定顺序组织的计算机数据和指令的集合. 1)系统软件:DOS.windows.linux. 2)应用软件:QQ.扫雷等. 2.软件开发就是制作软件. 3.人与计算机 ...

  9. Win10正式版激活方法有哪些?如何激活Win10?

    很多用户都想将系统升级到Win10,但是却不知道怎么激活Win10正式版的方法,其实不同版本激活正式版Win10的方法秘钥不同,下面99安卓网小编就分享一些激活Win10正式版的方法和秘钥,供大家参考 ...

  10. Nodejs开发指南-笔记

    第三章 异步式I/O与事件编程3.1 npm install -g supervisor supervisor app.js 当后台修改代码后,服务器自动重启,生效修改的代码,不用手动停止/启动3.2 ...