2014-10-28 30 views
0

今天我得到一些问题。我的servlet映射是直接匹配的默认servlet

下面这是web.xml中的我的servlet映射内容

<servlet> 
    <servlet-name>static-resource</servlet-name> 
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>static-resource</servlet-name> 
    <url-pattern>/statis-resource/*</url-pattern> 
</servlet-mapping> 

<servlet> 
    <servlet-name>dispatcher</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
</servlet> 

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

我的应用程序的目录结构:

/WEB-INF 
/static-resource 

我希望这个

  1. 的这起案件该请求映射到static-resource servlet

    • http://myserver/static-resource/test.js
    • http://myserver/static-resource/images/img1.jpg
    • http://myserver/static-resource/test.xml
  2. 而且这种情况下,请求的是映射到dispatcher的servlet

    • http://myserver/other/whole/uri

但是,我的web.xml是整个请求映射到dispatcher servlet直接。 下面是我GlassFish服务器日志上请求

[#| 2014-10-28T09:54:27.722 + 0900 |警告| glassfish3.1 | org.springframework.web.servlet.PageNotFound | _ThreadID = 680; _ThreadName = Thread-1; |在名为'dispatcher'|#]的DispatcherServlet中没有找到具有URI [/static-resource/test.js]的HTTP请求的映射

所以,我想知道为什么整个请求映射到dispatcher servlet的? 任何人都可以帮助我吗?

更新


对不起我misstake,我纠正misstype但仍然响应404错误。嗯...可能还有其他问题?

+0

因为你键入'统计的-resource',而不是'static- resource'? – 2014-10-28 01:49:41

回答

1

Servlet映射是在最具体的URL匹配的基础上完成的。所以,你使用了正确的方法,但只是在做一个字静一个错字错在你的网址在这里:

<url-pattern>/statis-resource/*</url-pattern> 

改变它

<url-pattern>/static-resource/*</url-pattern> 
+0

对不起,我做了愚蠢的错误 – ordinaryparksee 2014-10-28 02:34:31

+0

检查了这一点。也许存在一些问题http://the-double-0-project.blogspot.kr/2010/04/serving-static-resources-in-glassfish-3.html – ordinaryparksee 2014-10-28 04:31:17