gpt4 book ai didi

java - 有没有办法在 @Controller 方法中访问 HttpRequest 类型

转载 作者:行者123 更新时间:2023-12-02 06:32:47 24 4
gpt4 key购买 nike

我试图找到这个问题的答案,但我似乎找不到我想要的东西。因此,如果这个问题已经存在,我深表歉意。

问题:
我希望能够访问 Controller 内通用方法内的请求的请求类型。

描述:
使用 Spring ROO 和 Spring MVC,我开发了一个小型 Web 服务,在查询时它将响应数据库中的某些花絮。在我的一个 Controller 类中,我有一些方法可以处理 @RequestMapping 参数中映射的 URI 的各种 GET、PUT、POST 等。

例如:

@RequestMapping(method = RequestMethod.Get, value = "/foo/bar")
@ResponseBody
public ResponseEntity<String> getFooBar() {
// stuff
}

如果向当前未映射的 Web 服务发出请求,则会返回 405 错误(这是正确的),但我想随 405 响应一起返回更多信息。也许可以这样回应:

“我知道您尝试执行[某些方法],但此路径仅处理[正确方法列表]。”

所以我写了一个只有 RequestMapping 的简短方法:

@RequestMapping(value = "/foo/bar")

我发现使用此映射的方法将捕获所有未处理的请求类型。但我在从方法内访问请求的信息时遇到问题,特别是类型。

问题:
A. 如何从方法内访问请求类型?

B. 这是正确的方法吗?什么是正确的方法?

编辑
答案:

我向方法参数添加了一个 HttpServletRequest 对象。我能够从中访问方法类型。

我尝试使用HttpRequest,但它似乎不太喜欢。

谢谢大家!

最佳答案

您可以添加 HttpServletRequest 的方法参数,但我认为您最好继续回复 405。然后客户端应该进行 HTTP OPTIONS 调用(请参阅 How to handle HTTP OPTIONS with Spring MVC? )并您可以在那里返回允许的方法列表。

关于java - 有没有办法在 @Controller 方法中访问 HttpRequest 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19931620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com