springmvc 重定向

本贴最后更新于 2971 天前,其中的信息可能已经渤澥桑田

各位基佬们,有谁做过 springmvc post 请求重定向的问题,即 post-redirect-post,将参数由第一个 post 请求传递给第二个 post 请求

  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    948 引用 • 1460 回帖 • 2 关注
  • post
    3 引用 • 29 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • Angonger

    没有但是我想沙发

  • meikaiyipian

    redirect 可以携带参数吗?除了那种地址后带的

    1 回复
  • wugy

    可以的,使用 RedirectAttributes

    1 回复
  • meikaiyipian

    没用过这么高级的

  • wugy

    😄 呼叫大婶 @88250

    1 回复
  • 88250

    没用过..

    1 回复
  • wugy

    秒回呀,批量执行的操作,前端传的数据较多,需要根据不同的类型重定向到对应的业务类型 controller,有没有好的解决思路?

    1 回复
  • 88250

    为什么要重定向,不搞一下内部路由呢

    1 回复
  • wugy

    每种业务类型都有对应的 controller,不重定向的话,需要注入每种类型的 controller,内部路由是什么?麻烦说详细的,谢谢!

    1 回复
  • 88250

    哦,我明白了。前面说的内部路由你就当我没说吧,我原意是想让你搞一下分发不同服务进行处理。
    要客户端重定向的话 302 理论上是会带请求参数的嘛。

    1 回复
  • wugy

    我说的是在服务端重定向,客户端只提供一个 url,服务端接收到这个请求后再根据不同的业务类型重定向到对应的 url 处理。

    1 回复
  • 88250

    加油,我是帮不上什么了,哈哈

    1 回复
  • wugy

    😢

  • smart

    forward 不行么?

    1 回复
  • wugy

    没试过。。。

    1 回复
  • smart

    直接 forward 应该就可以,forward 应该是保留了原来的请求方式以及参数。redirect 是重定向,参数都会丢失的,除非你手动塞进去

    1 回复
  • wugy

    试了好像不行,forward 是不是 url 直接是 jsp 页面的地址?

    1 回复
  • smart

    我试了下可以,我用 springboot

    @PostMapping("/login_test") public String test () { log.info("enter..."); return "forward:/login_do"; } @PostMapping("/login_do") @ResponseBody public JSONObject login_check (String userName, String syspwd, String userpwd, String token) { JSONObject rsJson = new JSONObject(); log.info("登录校验:user:{}, syspwd:{}, userpassd:{}, token:{}", userName, syspwd, userpwd, token); ResultState rs = sysService.login(userName, syspwd, userpwd); HttpSession session = this.getSession(); if (rs.isState()) { session.setAttribute(Const.SESSION_USER, new User(userName, userpwd)); rsJson.put("status", "ok"); log.info("user:{}登录成功!", userName); } else { rsJson.put("status", "fail"); rsJson.put("errCode", rs.getErrCode()); log.warn("登录失败"); } return rsJson; } ```
    1 回复
  • wugy

    39202a306b554670ad98dbad568ecd31.png

    我是这么用的(ps:eclipse 中代码不能直接拷贝出来)

    1 回复
  • smart

    可以吗?你这是又把 springmvc 用回了 servlet 啊 😂

    1 回复
  • wugy

    我处理的是批量操作,多种业务类型,前端统一请求一个 url,后端接收到请求后根据不同的业务类型请求对应的 url

    1 回复
  • smart

    这样写岂不更优雅一些?springboot web 和 springmvc 其实是一样的,springboot 只是对 spring 集成的整合。

    @PostMapping("/login_test") public String test () { log.info("enter..."); StringBuilder sbd = new StringBuilder("forward:"); sbd.append("/login_check?param0=") .append("abcd"); return sbd.toString(); } @PostMapping("/login_check") public ModelAndView login_check (String userName, String syspwd, String userpwd, String token, String param0) { log.info("登录校验:user:{}, syspwd:{}, userpassd:{}, token:{}, param0:{}", userName, syspwd, userpwd, token, param0); ModelAndView mv = this.getModelAndView(); mv.setViewName("index"); return mv; } ```
    1 回复
  • wugy

    b2971b1143fb44e99398e870fbfd46a8.png

    按你说的,我这么写你认为可以吗?(ps:我的 eclipse 中代码如何直接粘贴到回复中呀?)

    1 回复
  • smart 2

    转发就不要 ```
    @ResponseBody

    代码粘贴查看[MarkDown教程](https://hacpai.com/guide/markdown) @88250 @Vanessa 看我又帮你们推广了 :smile:
    2 回复
  • wugy

    💯 好的,我试下,感谢!!!

  • Vanessa via macOS

    就需要你这样的老司机来带一带

请输入回帖内容 ...

推荐标签 标签

  • 反馈

    Communication channel for makers and users.

    127 引用 • 930 回帖 • 272 关注
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1708 回帖
  • Swagger

    Swagger 是一款非常流行的 API 开发工具,它遵循 OpenAPI Specification(这是一种通用的、和编程语言无关的 API 描述规范)。Swagger 贯穿整个 API 生命周期,如 API 的设计、编写文档、测试和部署。

    26 引用 • 35 回帖 • 1 关注
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    139 引用 • 269 回帖
  • 生活

    生活是指人类生存过程中的各项活动的总和,范畴较广,一般指为幸福的意义而存在。生活实际上是对人生的一种诠释。生活包括人类在社会中与自己息息相关的日常活动和心理影射。

    230 引用 • 1454 回帖
  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖 • 2 关注
  • 资讯

    资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。

    56 引用 • 85 回帖
  • 宕机

    宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。

    13 引用 • 82 回帖 • 76 关注
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 119 关注
  • Typecho

    Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。

    12 引用 • 67 回帖 • 451 关注
  • 996
    13 引用 • 200 回帖 • 2 关注
  • Hprose

    Hprose 是一款先进的轻量级、跨语言、跨平台、无侵入式、高性能动态远程对象调用引擎库。它不仅简单易用,而且功能强大。你无需专门学习,只需看上几眼,就能用它轻松构建分布式应用系统。

    9 引用 • 17 回帖 • 630 关注
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    163 引用 • 310 回帖
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    59 引用 • 29 回帖
  • PWL

    组织简介

    用爱发电 (Programming With Love) 是一个以开源精神为核心的民间开源爱好者技术组织,“用爱发电”象征开源与贡献精神,加入组织,代表你将遵守组织的“个人开源爱好者”的各项条款。申请加入:用爱发电组织邀请帖
    用爱发电组织官网:https://programmingwithlove.stackoverflow.wiki/

    用爱发电组织的核心驱动力:

    • 遵守开源守则,体现开源&贡献精神:以分享为目的,拒绝非法牟利。
    • 自我保护:使用适当的 License 保护自己的原创作品。
    • 尊重他人:不以各种理由、各种漏洞进行未经允许的抄袭、散播、洩露;以礼相待,尊重所有对社区做出贡献的开发者;通过他人的分享习得知识,要留下足迹,表示感谢。
    • 热爱编程、热爱学习:加入组织,热爱编程是首当其要的。我们欢迎热爱讨论、分享、提问的朋友,也同样欢迎默默成就的朋友。
    • 倾听:正确并恳切对待、处理问题与建议,及时修复开源项目的 Bug ,及时与反馈者沟通。不抬杠、不无视、不辱骂。
    • 平视:不诋毁、轻视、嘲讽其他开发者,主动提出建议、施以帮助,以和谐为本。只要他人肯努力,你也可能会被昔日小看的人所超越,所以请保持谦虚。
    • 乐观且活跃:你的努力决定了你的高度。不要放弃,多年后回头俯瞰,才会发现自己已经成就往日所仰望的水平。积极地将项目开源,帮助他人学习、改进,自己也会获得相应的提升、成就与成就感。
    1 引用 • 487 回帖 • 4 关注
  • SMTP

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

    4 引用 • 18 回帖 • 634 关注
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    22 引用 • 214 回帖
  • AngularJS

    AngularJS 诞生于 2009 年,由 Misko Hevery 等人创建,后为 Google 所收购。是一款优秀的前端 JS 框架,已经被用于 Google 的多款产品当中。AngularJS 有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等。2.0 版本后已经改名为 Angular。

    12 引用 • 50 回帖 • 508 关注
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 677 关注
  • PHP

    PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。

    180 引用 • 408 回帖 • 489 关注
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    168 引用 • 597 回帖
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    58 引用 • 25 回帖
  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    187 引用 • 318 回帖 • 255 关注
  • 安装

    你若安好,便是晴天。

    132 引用 • 1184 回帖
  • 音乐

    你听到信仰的声音了么?

    62 引用 • 512 回帖
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    693 引用 • 537 回帖
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    20 引用 • 23 回帖 • 740 关注