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 ...
随机推荐
- 如果项目在IIS发布后,出现System.ComponentModel.Win32Exception: 拒绝访问。
如果项目在IIS发布后,出现System.ComponentModel.Win32Exception: 拒绝访问. 那么就试试下面的办法. 步骤如下: 应用程序池=>设置应用程序池默认设置 将标 ...
- elasticsearch工作笔记002---Centos7.3安装最新版elasticsearch-7.0.0-beta1-x86_64.rpm单机版安装
新版本es安装问题: https://blog.csdn.net/lidew521/article/details/88091539
- 【Oracle】创建用户及设定权限
; grant create session to ufo; grant create tablespace to ufo; grant create table to ufo; grant drop ...
- Intel AI Cloud 使用
1.申请AI Cloud A ‘training-ready’ hardware like Amazon® EC2, Intel® AI DevCloud, or a GPU-based system ...
- 【分类算法】朴素贝叶斯(Naive Bayes)
0 - 算法 给定如下数据集 $$T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\},$$ 假设$X$有$J$维特征,且各维特征是独立分布的,$Y$有$K$种取值.则 ...
- hadoop格式化
1.hadoop启动时,namenode没有启动起来 1.删除 namenode产生的临时文件 tmp 2.删除datanode的数据,否则也不行.(如果datanode有数据,请自己备份) ./bi ...
- Hibernate 自动更新表出错 建表或添加列,提示标识符无效
如Oracle 数据库下报错: create table db_meta_web.user (id varchar2(255 char) not null, account varchar2(255 ...
- VCL组件之TPanel
TPanel位于Standard组件面板上,也是常用的一种容器控件.面板的一个优点就是放在面板上的组件称为面板的一部分,因此它们与面板一起移动.这在设计阶段很有用. Panel组件的大部分功能在于其A ...
- 【leetcode_easy】590. N-ary Tree Postorder Traversal
problem 590. N-ary Tree Postorder Traversal 参考 1. Leetcode_easy_590. N-ary Tree Postorder Traversal; ...
- iOS面霸计划(难度)
一.面试题 1.Xcode项目的目录结构是怎么分组的? 2.简单介绍下在真机上调试开发证书申请流程. 3.按Home键时,怎么保存程序运行状态 4.当程序运行过程中,按下home键以后,ios程序会调 ...