当前位置: 首页 > 知识库问答 >
问题:

Java Spring MVC应用程序只接受带有尾随斜杠的POST请求

空慈
2023-03-14

我有一个spring MVC应用程序,具有以下细节

  1. WAR文件名为forms.war。web.xml中的url模式是“/”
  2. 控制器操作的@requestmapping是“/”
  3. RequestMethod.get操作在单击localhost:8080/forms时正常工作
  4. RequestMethod.post操作未触发,如果post数据命中localhost:8080/forms
  5. POST请求提供302重定向
  6. 单击localhost:8080/forms/时,POST请求正常工作
public class HttpPostExample {
    public static void main(String[] args) {
        HttpClient httpClient = HttpClientBuilder.create().build();
        try {

            HttpPost request = new HttpPost("http://localhost:8080/forms");
            StringEntity params =new StringEntity("{\"form_url\":\"admin\",\"website\":\"US_WEBSITE\",\"email\":\"testelascrip1@gmail.com\",\"cis_name\":\"testscrip1\"} ");
            request.addHeader("content-type", "application/x-www-form-urlencoded");
            request.setEntity(params);
            HttpResponse response = httpClient.execute(request);

            System.out.println("Printing the response code " + response.getStatusLine().getStatusCode());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

将url更改为/forms/适用于POST请求,但不适用/forms

共有1个答案

宣高朗
2023-03-14

@requestmapping更改为无映射(所以根本不要放值,甚至不要放值“/”)或将“/*”更改为无映射。

 类似资料:
  • 我要做的是,当用户访问时,应该将他们代理到运行在端口80上的apache。 当我访问时,我会得到正确的结果(index.php)。当我访问时,我会得到正确的结果(404来自apache)。当我访问时,我会得到正确的结果(404来自nginx)。当我访问时,我会得到正确的结果(404来自apache)。 问题是当我访问时。我得到一个301响应,并被重定向到(注意后面的斜杠,当然还有'localhos

  • 我正在阅读Flask quickstart指南,但是使用变量进行路由的示例对我来说并不适用。 http://127.0.0.1:5000/user/bob重定向到http://127.0.0.1:5000/user/bob/给我一个404 我还尝试了与指南中完全相同的代码。我的第一个要点中的错误是意料之中的吗?快速入门版本中的代码应该工作吗?还是我误解了什么? 我使用的是Python 2.7.10

  • 问题内容: 我正在使用Node.js和Express,并且具有以下路由: 我有一个Disqus小部件上我的课的网页,我注意到一个奇怪的行为是要当和我得到两个不同的网页(对他们都有我以前在Disqus增加,而另一个没有评论评论)。 有没有一种方法可以将我的所有网址“规范化”为不加斜杠?我尝试添加标志来表达,但结果相同 谢谢 问题答案: 尝试为此添加中间件;

  • 问题内容: 我的api要求在api调用后加一个斜杠。我想知道如何以棱角分明的方式实现这一目标。 所以我需要能够访问,或者 我尝试通过以下方式进行访问: 和一个 但结果为或查询。 我怎样才能迫使它总是和 问题答案: 这似乎已得到解决:https : //github.com/angular/angular.js/pull/5560 您现在可以通过以下方式配置它:

  • 问题内容: Spring MVC(3.0)将带斜杠和不带斜杠的URL视为同一URL。 我需要在应用程序内部进行此操作(以免通过Apache重写规则等)。 一种方法是: 但这通常有两个问题: 太多的控制器 参数问题:编码错误 题 有没有一种方法可以截获所有URL,并且如果它们带有斜杠,可以将它们重定向到相对的地址而不用斜杠? 问题答案: Web配置中所需的所有重写规则 如果没有很多,你可以像这样配置

  • 问题内容: Spring MVC(3.0)将带斜杠和不带斜杠的URL视为同一URL。 例如: http://www.example.org/data/something/ 我需要用斜杠重定向URL http://www.example.org/data/something/ 到没有它的URL: http://www.example.org/data/something 我需要在应用程序内部进行此操