springmvc 重定向

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

各位基佬们,有谁做过 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

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

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

请输入回帖内容 ...

推荐标签 标签

  • SMTP

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

    4 引用 • 18 回帖 • 644 关注
  • 自由行
    1 关注
  • 大疆创新

    深圳市大疆创新科技有限公司(DJI-Innovations,简称 DJI),成立于 2006 年,是全球领先的无人飞行器控制系统及无人机解决方案的研发和生产商,客户遍布全球 100 多个国家。通过持续的创新,大疆致力于为无人机工业、行业用户以及专业航拍应用提供性能最强、体验最佳的革命性智能飞控产品和解决方案。

    2 引用 • 14 回帖
  • Scala

    Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。

    13 引用 • 11 回帖 • 166 关注
  • QQ

    1999 年 2 月腾讯正式推出“腾讯 QQ”,在线用户由 1999 年的 2 人(马化腾和张志东)到现在已经发展到上亿用户了,在线人数超过一亿,是目前使用最广泛的聊天软件之一。

    45 引用 • 557 回帖 • 2 关注
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 234 回帖 • 3 关注
  • JWT

    JWT(JSON Web Token)是一种用于双方之间传递信息的简洁的、安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 的形式安全的传递信息。

    20 引用 • 15 回帖 • 24 关注
  • Maven

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

    188 引用 • 319 回帖 • 235 关注
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 837 关注
  • 安装

    你若安好,便是晴天。

    131 引用 • 1184 回帖 • 2 关注
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    91 引用 • 59 回帖 • 1 关注
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    199 引用 • 543 回帖 • 3 关注
  • FlowUs

    FlowUs.息流 个人及团队的新一代生产力工具。

    让复杂的信息管理更轻松、自由、充满创意。

    1 引用
  • Node.js

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

    139 引用 • 269 回帖 • 1 关注
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    36 引用 • 35 回帖 • 2 关注
  • DNSPod

    DNSPod 建立于 2006 年 3 月份,是一款免费智能 DNS 产品。 DNSPod 可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网的用户访问教育网的服务器,达到互联互通的效果。

    6 引用 • 26 回帖 • 533 关注
  • Typecho

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

    12 引用 • 67 回帖 • 445 关注
  • 生活

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

    230 引用 • 1432 回帖
  • jsDelivr

    jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。

    5 引用 • 31 回帖 • 109 关注
  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 384 回帖 • 4 关注
  • AWS
    11 引用 • 28 回帖 • 5 关注
  • LeetCode

    LeetCode(力扣)是一个全球极客挚爱的高质量技术成长平台,想要学习和提升专业能力从这里开始,充足技术干货等你来啃,轻松拿下 Dream Offer!

    209 引用 • 72 回帖 • 1 关注
  • danl
    188 关注
  • 倾城之链
    23 引用 • 66 回帖 • 176 关注
  • WordPress

    WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在 GNU 通用公共许可证(GPLv2)下授权发布。

    46 引用 • 114 回帖 • 155 关注
  • SEO

    发布对别人有帮助的原创内容是最好的 SEO 方式。

    36 引用 • 200 回帖 • 45 关注