SpringMVC如何用Post方式重定向
SpringMVC用Post方式重定向
正常会以return "redirect:/XXX"这种方式直接重定向,但是这种方式是Get方式提交。
然而有些业务为了安全性必须要Post方式重定向。
Post方式重定向
我尝试过的方法:
/**
* 请求进行重定向
*/
@RequestMapping(value = “postPayAmount”, method = RequestMethod.GET)
public RedirectView postPayAmount(HttpSession session,ModelMap map) {
return new RedirectView(WsUrlConf.URI_PAY,true,false,false);//最后的参数为false代表以post方式提交请求
} 以上方法并不好用,我看了作者写的另一个解决办法
1、先封装一个Form,用他来发Post请求。
/**
* @Description: 后台进行POST请求(请写在代码执行结尾)
* @return void 返回类型
*/
public static void doBgPostReq(HttpServletResponse response,String postUrl,Map<String, ?> paramMap) throws IOException {
response.setContentType( "text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<form name='postSubmit' method='post' action='"+postUrl+"' >");
for (String key : paramMap.keySet()) {
out.println("<input type='hidden' name='"+key+"' value='" + paramMap.get(key)+ "'>");
}
out.println("</form>");
out.println("<script>");
out.println(" document.postSubmit.submit()");
out.println("</script>");
}2、在控制层直接调用
/**
* 进行请求
* @param request
* @return
* @throws IOException
*/
@RequestMapping(value = "doPostRedirectView.do", method = RequestMethod.GET)
@ResponseBody
public void doPostRedirectView(HttpServletRequest request,HttpServletResponse response,ModelMap map) throws IOException {
logger.debug("-----进入了doPostRedirectView----");
map.put("aaa", "aaaa");
HttpUtils.doBgPostReq(response, "doPostReq.do", map);
}SpringMVC的Post提交405错误,只能使用重定向方式
前端文件
<form action="welcome1" method="post"> <input type="submit" value="post-请求转发"> </form> <br> <br> <form action="welcome2" method="post"> <input type="submit" value="post-重定向"> </form>
后端控制器类
@Controller
public class SpringMvcController {
@RequestMapping(path = "welcome1",method = RequestMethod.POST)
public String welcome1(){
return "success"; //默认使用请求转发
}
@RequestMapping(path = "welcome2",method = RequestMethod.POST)
public String welcome2(){
return "redirect:success.html"; //使用重定向
}
}使用@PostMapping注解的方式也一样。
配置类
# 应用名称 spring.application.name=sringmvc-blog # 应用服务 WEB 访问端口 server.port=8081 # 后缀名 spring.mvc.view.suffix=.html
要跳转的success.html页面
<h1>springMVC 的 post</h1>
运行页面:

结果
请求转发的方式:

重定向的方式:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
SpringBoot配置Ollama实现本地部署DeepSeek
本文主要介绍了在本地环境中使用 Ollama 配置 DeepSeek 模型,并在 IntelliJ IDEA 中创建一个 Spring Boot 项目来调用该模型,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2025-03-03
Springboot接口返回参数及入参RSA加密解密的过程详解
这篇文章主要介绍了Springboot接口返回参数及入参RSA加密解密,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-07-07
Centos6.5下Jdk+Tomcat+Mysql环境安装图文教程
这篇文章主要为大家详细介绍了Centos6.5系统下Jdk+Tomcat+Mysql环境安装过程,感兴趣的小伙伴们可以参考一下2016-05-05
SpringBoot和VUE源码直接整合打包成jar的踩坑记录
这篇文章主要介绍了SpringBoot和VUE源码直接整合打包成jar的踩坑记录,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-03-03
Java中验证 Mybatis 数据分片可以减轻GC压力的操作方法
这篇文章主要介绍了Java中验证 Mybatis 数据分片可以减轻GC压力的操作方法,本文使用 Spock(可集成Spring Boot项目) 编写测试用例,基于 Groovy (JVM语言),感兴趣的朋友跟随小编一起看看吧2024-12-12
java高并发ScheduledThreadPoolExecutor类深度解析
这篇文章主要为大家介绍了java高并发ScheduledThreadPoolExecutor类源码深度解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-11-11


最新评论