欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[问题]SpringMVC RestFul风格编码404

程序员文章站 2024-03-25 16:54:40
...

学习springmvc时,碰到用RestFul风格url,浏览器却一直报404。

 @RequestMapping(name="/add.do/{a}/{b}", method= RequestMethod.DELETE)
    public String test(@PathVariable int a,@PathVariable int b , Model model){


        model.addAttribute("msg","结果为"+(a+b));


        return "test";
    }

按理说 输入http://localhost:8080/ch04web/add.do/1/2 会跳转到test,然鹅显示404.The requested resource is not available.

排查原因后发现是在web.xml配置里面用到了扩展名方式:

  <!--当访问mvc时才会创建出来-->
    <servlet-mapping>
        <servlet-name>Myweb</servlet-name>

        <!-- 作用:把一些请求交给指定的当前servlet处理
        框架中,使用的*调度器(DispatcherSerclet)(前端控制器)
        1.使用扩展名方式: *.xxx *.do 等等...

        有一个不能用 *.jsp: 在程序中访问index.jsp 在java中有特殊的格式文件

        *.do 的方式 使用“/”
        -->
        <url-pattern>/mymvc</url-pattern>
        <url-pattern>/query</url-pattern>
        <!--*表示字符 .do 表示.do结尾的请求就交给该处理进行处理-->
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

和这里的*.do冲突了,把改为拦截所有请求 /即可

这个问题的产生主要是因为普通的http请求拦截一般会有后缀的形式,但是restful形式的风格,则没有后缀的方式,所以我们需要springmvc的拦截器的拦截方式修改一下就可以了。