IT俱乐部 Java SpringMVC如何用Post方式重定向

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 paramMap) throws IOException {
        response.setContentType( "text/html;charset=utf-8");   
        PrintWriter out = response.getWriter();  
        out.println("");  
        for (String key : paramMap.keySet()) {
            out.println("");
        }
        out.println("");   
        out.println("");   
        out.println("  document.postSubmit.submit()");   
        out.println("");   
    }

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错误,只能使用重定向方式

前端文件

  

       
 

 
 

 
     
 

后端控制器类

@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页面

springMVC 的 post

运行页面:

结果

请求转发的方式:

重定向的方式:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持IT俱乐部。

本文收集自网络,不代表IT俱乐部立场,转载请注明出处。https://www.2it.club/code/java/7016.html
上一篇
下一篇
联系我们

联系我们

在线咨询: QQ交谈

邮箱: 1120393934@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部