如何在SpringMVC中将定制请求传递给控制器?

如何在SpringMVC中将定制请求传递给控制器?,spring,spring-mvc,Spring,Spring Mvc,通常,当提交用户表单时,请求被传递给spring控制器 控制器的形状是这样的 TestController(HttpServletRequest请求、HttpServletResponse响应) 我想传递“MyHttpSevletRequest,MyHttpServletResponse”而不是“HttpSevletRequest,HttpServletResponse” 可能吗? 我想知道这是否可能,以及如何实现?在技术上 不要说“没必要这么做,这里有另一条路” 任何答复都将予以通知。谢谢。我

通常,当提交用户表单时,请求被传递给spring控制器

控制器的形状是这样的 TestController(HttpServletRequest请求、HttpServletResponse响应)

我想传递“MyHttpSevletRequest,MyHttpServletResponse”而不是“HttpSevletRequest,HttpServletResponse

可能吗? 我想知道这是否可能,以及如何实现?在技术上

不要说“没必要这么做,这里有另一条路”


任何答复都将予以通知。谢谢。

我不知道如何直接做,但我知道一种解决方法,可以让您完成计划


您可以使用SpringAOP和在请求和响应对象进入/离开操作方法之前和之后获取它们。基本上是一种请求-响应拦截器。您可以编写一个transformer方法,将标准请求和响应对象作为输入,并使用自定义请求和响应对象(您的自定义类应实现HttpServletRequest接口)输出,然后使用自定义对象覆盖请求和响应对象。

我以前见过控制器中的“MRequest,MResponse”。我没有这方面的来源。但我看到它工作得很好。MRequest与带有附加方法getParam()的请求不同.我想实现这一点。但我不能开始,因为我不知道它是如何实现的。这就是我建议的,制作一个拦截器..用你的自定义请求对象重写你的标准请求对象..所以你的控制器中出现的任何东西都将是你的自定义请求对象,你可以根据自己的意愿使用它..我知道了什么我们需要的是向HttpServletRequest添加一个方法。拦截器可以做到这一点吗?没有拦截器只是一个公共入口点,您的所有请求对象都将转换为自定义请求,这样您的自定义请求对象在每个操作方法中都可用。您可以实现自己的方法。但是,通常当有人想介绍他自己的请求/响应通常是更好的解决方案。你为什么需要这个?非常感谢。这就是我想要的。真的谢谢你。我为什么要这样做是为了处理各种请求类型。例如flex请求、extjs、标准请求……等等。如果我实现MRequest对象,任何客户端都不重要。我可以d以getParam()的一致方式获取请求;