2014-10-28 50 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