SpringMVC如何用Post方式重定向

作者:贺总的好兄弟 时间:2021-10-05 21:34:27 

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>

运行页面:

SpringMVC如何用Post方式重定向

结果

请求转发的方式:

SpringMVC如何用Post方式重定向

重定向的方式:

SpringMVC如何用Post方式重定向

来源:https://blog.csdn.net/CosecantY/article/details/122912059

标签:SpringMVC,Post,重定向
0
投稿

猜你喜欢

  • WPF使用WrapPanel实现虚拟化效果

    2021-07-04 14:53:53
  • C#实现XML文件操作详解

    2023-07-16 12:36:52
  • Java数据结构之图的基础概念和数据模型详解

    2022-03-25 11:27:04
  • C#实现洗牌游戏实例

    2021-07-07 00:45:29
  • IDEA JeeSite框架httpSession.invalidate()无效问题解决方案

    2023-09-23 19:44:24
  • Spring boot动态修改日志级别的方法

    2023-04-04 09:36:00
  • c# 自定义泛型链表类的详解

    2022-07-27 23:58:46
  • 解决Spring在Thread中注入Bean无效的问题

    2022-06-26 13:03:59
  • 详解Java Synchronized的实现原理

    2023-11-25 06:04:53
  • Java给JFrame窗口设置热键的方法实现

    2022-01-24 13:32:20
  • OpenJDK源码调试图文教程

    2022-09-26 01:40:25
  • android开发去除标题栏的方法

    2021-06-30 19:11:29
  • springboot集成spring cache缓存示例代码

    2021-10-20 07:57:54
  • 【MyBatis源码全面解析】MyBatis一二级缓存介绍

    2023-02-25 23:57:12
  • 一文带你熟练掌握Java中的日期时间相关类

    2022-01-21 00:42:54
  • C#操作Excel相关方法总结

    2021-06-22 12:00:48
  • C++定义和初始化string对象实例详解

    2022-08-05 06:03:00
  • 解决springmvc关于前台日期作为实体类对象参数类型转换错误的问题

    2023-11-28 20:53:42
  • 动态配置Spring Boot日志级别的全步骤

    2023-01-29 01:57:19
  • 使用maven开发springboot项目时pom.xml常用配置(推荐)

    2022-09-19 23:33:48
  • asp之家 软件编程 m.aspxhome.com