springmvc 重定向

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

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

  • Spring

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

    948 引用 • 1460 回帖
  • 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

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

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

请输入回帖内容 ...

推荐标签 标签

  • 996
    13 引用 • 200 回帖
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    524 引用 • 4601 回帖 • 710 关注
  • 正则表达式

    正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。

    31 引用 • 94 回帖
  • 叶归
    14 引用 • 62 回帖 • 21 关注
  • RYMCU

    RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。

    4 引用 • 6 回帖 • 63 关注
  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 616 关注
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    247 引用 • 1340 回帖
  • AngularJS

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

    12 引用 • 50 回帖 • 520 关注
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    162 引用 • 529 回帖 • 9 关注
  • 开源中国

    开源中国是目前中国最大的开源技术社区。传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台。目前开源中国社区已收录超过两万款开源软件。

    7 引用 • 86 回帖
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 767 关注
  • IPFS

    IPFS(InterPlanetary File System,星际文件系统)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。请浏览 IPFS 入门笔记了解更多细节。

    20 引用 • 245 回帖 • 233 关注
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 81 关注
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖 • 1 关注
  • 支付宝

    支付宝是全球领先的独立第三方支付平台,致力于为广大用户提供安全快速的电子支付/网上支付/安全支付/手机支付体验,及转账收款/水电煤缴费/信用卡还款/AA 收款等生活服务应用。

    29 引用 • 347 回帖 • 1 关注
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    37 引用 • 157 回帖 • 2 关注
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖
  • SEO

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

    36 引用 • 200 回帖 • 39 关注
  • 酷鸟浏览器

    安全 · 稳定 · 快速
    为跨境从业人员提供专业的跨境浏览器

    3 引用 • 59 回帖 • 54 关注
  • 招聘

    哪里都缺人,哪里都不缺人。

    188 引用 • 1057 回帖
  • Kubernetes

    Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。

    118 引用 • 54 回帖 • 5 关注
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    211 引用 • 358 回帖
  • 浅吟主题

    Jeffrey Chen 制作的思源笔记主题,项目仓库:https://github.com/TCOTC/Whisper

    1 引用 • 31 回帖
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖
  • ZooKeeper

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

    61 引用 • 29 回帖 • 10 关注
  • CodeMirror
    2 引用 • 17 回帖 • 176 关注
  • SpaceVim

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

    3 引用 • 31 回帖 • 112 关注