zoukankan      html  css  js  c++  java
  • No mapping found for HTTP request with URI

    新在学习Spring3.0,AngularJS和Bootstrap时,一直在考虑如果把这三者结合起来。今天在尝试的过程中,遇到了拦路虎。No mapping found for HTTP request with URI [/springmvc/js/bootstrap.min.js]

    web.xml的配置如下

    <servlet-mapping> 
      <servlet-name>mumu</servlet-name>
      <url-pattern>/</url-pattern>
    </servlet-mapping>

    在这里,有三种配置方法。

    • 完全匹配
    <url-pattern>/</url-pattern> 

    会匹配到/login这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url,因此导致静态资源如js,css不能访问到

    • 路径匹配
    <url-pattern>/*</url-pattern> 

    会匹配所有url:路径型的和后缀型的url(包括/login,.jsp,.js和*.html等)
    在URL匹配时, 
    <url-pattern>/</url-pattern>不会匹配到*.jsp,不会进入spring的DispatcherServlet类 
    <url-pattern>/*</url-pattern>会匹配*.jsp,导致进入spring的DispatcherServlet类,然后去寻找controller,接着找不到对应的controller所以报错。

    • 扩展名匹配
    <url-pattern>*.do</url-pattern> 
    <url-pattern>*.html</url-pattern> 匹配全部html结尾的请求
    <url-pattern>*</url-pattern> 不能用*,否则报错

    解决方法:

    • 第一种方法:在web.xml中添加
    <servlet-mapping> 
      <servlet-name>default</servlet-name>
      <url-pattern>*.css</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
      <servlet-name>default</servlet-name>
      <url-pattern>*.gif</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
      <servlet-name>default</servlet-name>
      <url-pattern>*.jpg</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
      <servlet-name>default</servlet-name>
      <url-pattern>*.js</url-pattern>
    </servlet-mapping>
    • 第二种方法:在servlet中添加如下
    <mvc:default-servlet-handler/>

    注意:需要是spring3.0.5以上版本。

    • 第三种方法:在servlet中添加如下
    <mvc:resources mapping="/resources/**" location="/resources/" />

    这个配置告诉spring 静态资源的处理方式。

  • 相关阅读:
    设计模式20-观察者模式
    设计模式19-备忘录模式
    设计模式18-中介者模式
    设计模式17-迭代器模式
    设计模式16-解释器模式
    Wireshark基本介绍和学习TCP三次握手
    Jmeter CSV 参数化/检查点/断言
    Jmeter运营活动并发测试—巧用集合点
    一个简单的性能测试
    Jmeter对HTTP请求压力测试、并发测试
  • 原文地址:https://www.cnblogs.com/dgy5554/p/4433273.html
Copyright © 2011-2022 走看看