Spring 后台方法 重定向 与 转发
一、重定向:重定向是客户端行为,在使用时,务必使用全路径,否则可能因为外部环境导致错误
1、URL改变为重定向的URL地址
2、前台页面不能使用Ajax请求提交, 应该使用form表单提交
方法一、参数URL
return new RedirectView("https://www.baidu.com")
方法二、参数URL
return "redirect:https://www.baidu.com";//协议类型一定要有
return "redirect:/home";
方法三、参数URL
response.sendRedirect("https://www.baidu.com");
方法四、参数view、viewName
return new ModelAndView("redirect:https://www.baidu.com")
3、参数传递
方法一、直接在url后面拼接参数,使用@RequestParam来取值,不推荐使用
方法二、在controller方法的参数中使用RedirectAttributes来传递参数;在跳转的controller中同样使用@RequestParam来取值,在浏览器中同样是拼接参数的形式
public String redirect(RedirectAttributes attr) {
attr.addAttribute("name", "zhangsan");
return "redirect:/home";
}
方法三、使用RedirectAttributes的addFlashAttribute的方法来设置值,原理是在跳转前将值放入session中,跳转之后就将值清除掉。浏览器的地址不显示参数的值,推荐使用这种方法来传值。
attr.addFlashAttribute("name", "zhangsan");
重定向的方法中取值:@ModelAttribute("name") String name, 前台页面中无法取到该值
二、转发,服务器行为相对路径没有问题
1、地址栏不会改变
2、转发前后,后边的控制器继承前边控制器的请求参数(前边的控制器中改变参数,后边控制器看到的参数是更改后的参数)
3、拦截器只拦截一次请求
4、转发会在后台执行多个控制器
方法一、
return "forward:/dengluPost";
方法二、参数URL
request.getRequestDispatcher("/dengluPost").forward(request,response);
方法三、参数view、viewName
return new ModelAndView("forward:/dengluPost")
三、知识点
1、单系统, 经过重定向、转发的请求 sessionId 不变
2、
Spring 后台方法 重定向 与 转发的更多相关文章
- spring后台重定向方式
1.直接返回值中加重定向:"redirect:要访问的网址"; public String updateOrAddProject() { return "redirect ...
- JAVAWEB开发之HttpServletResponse和HttpServletRequest详解(上)(各种乱码、验证码、重定向和转发)
HttpServletResponse简介 Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象 request和re ...
- SpringMVC系列(九)自定义视图、重定向、转发
一.自定义视图 1. 自定义一个视图HelloView.java,使用@Component注解交给Spring IOC容器处理 package com.study.springmvc.views; i ...
- SpringMVC(一) 简单代码编写,注解,重定向与转发
SpringMVC是什么 SpringMVC是目前最好的实现MVC设计模式的框架,是Spring框架的一个分支产品,以SpringIOC容器为基础,并利用容器的特性来简化它的配置.SpringMVC相 ...
- 【spring 后台跳转前台】使用ajax访问的后台,后台正常执行,返回数据,但是不能进入前台的ajax回调函数中
问题: 使用ajax访问的后台,后台正常执行,并且正常返回数据,但是不能进入前台的ajax回调函数中 问题展示: 问题解决: 最后发现是因为后台的方法并未加注解:@ResponseBody,导致方法 ...
- java web重定向与转发
首先定义一下这两个词: 重定向是将用户从当前页面或servlet定向到另外一个jsp页面或者servlet 转发是将用户对当前jsp页面或者servlet对象的请求转发给另外一个jsp页面或者serv ...
- SpringMVC 返回 html 视图页面,SpringMVC与Servlet,Servlet重定向与转发
1. SpringMVC与Servlet的关系 SpringMVC框架是建立在Servlet之上的,提供各种功能,各种封装,各种方便的同时,它一点儿也没有限制Servlet,我们完全可以在Spring ...
- Liferay中actionURL能够执行后台方法 ,但是页面不跳转问题解决方案
在学习liferay的过程中,遇到了这么一个问题,actionURL能够执行后台方法 ,但是页面不跳转,以下是两种解决方案: 方案1(不推荐此种办法): 强制将页面重定向. 在actionURL执行的 ...
- java 重定向和转发的区别
注:原创链接 http://www.cnblogs.com/shenliang123/archive/2011/10/27/2226892.html response.sendredirect(&q ...
随机推荐
- yarn集群8088端口被攻击挖矿
yarn集群8088端口被攻击挖矿 https://www.jianshu.com/p/a2d6b0d827ab https://blog.csdn.net/lm709409753/article/d ...
- LiquiBase实战总结
LiquiBase概述 Liquibase是一个用于跟踪.管理和应用数据库变化的开源的数据库重构工具.它将所有数据库的变化(包括结构和数据)都保存在XML文件中,便于版本控制. Liquibase具备 ...
- vue项目中 favicon.ico不能正确显示的问题
方法一:修改index.html文件 <link rel="shortcut icon" type="image/x-icon" href="f ...
- HTTP和WSGI协议
HTTP协议简介 超文本传输协议(HyperText Transfer Protocol)是一种应用层协议.HTTP是万维网的数据通信的基础.设计HTTP最初的目的是为了提供一种发布和接收HTML页面 ...
- centOS 8 安装Hadoop
1.安装环境 本教程使用 CentOS 8 64位 作为系统环境,请自行安装系统. 本教程基于原生 Hadoop 2,在 Hadoop 2.8.5 版本下验证通过,可适合任何 Hadoop 2.x.y ...
- 在Excel多个工作表间快速切换的绝招
在Excel多个工作表间快速切换的绝招 几乎每个Excel用户"数据分析师"都应该知道,如果一个Excel工作簿中包括许多个工作表,我们"数据分析师"可以通过单 ...
- delphi两个取字串长度的函数strlen,length
━━━━━━━━━━━━━━━━━━━━━━━━━━ [strlen]PChar 串专用函数:串长度 procedure TForm1.BitBtn1Click(Sender: TObject); v ...
- pod install [!] Unable to find a specification for `XXX`
今天下载了别人的源码学习的时候,执行pod install报错如下: 解决办法: 更新下pod即可. pod update install成功.
- 【数据库开发】windows下使用c++调用redis
不废话,unix下c++调用 redis可以看这个: http://blog.csdn.net/youngqj/article/details/8266177 ==================== ...
- 各种 Java Thread State 分析
转自:https://www.cnblogs.com/zhengyun_ustc/archive/2013/03/18/tda.html 1,线程状态为“waiting for monitor ent ...