我的servlet映射是直接匹配的默认servlet

时间:2014-10-28 01:46:08

标签: java jsp spring-mvc servlets glassfish

我今天得到一些问题。

以下是我的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
  3. 但是,我的web.xml是直接映射到dispatcher servlet的整个请求。 以下是我的glassfish服务器登录请求

    [#| 2014-10-28T09:54:27.722 + 0900 |警告| glassfish3.1 | org.springframework.web.servlet.PageNotFound | _ThreadID = 680; _TreadName = Thread-1; |找不到HTTP的映射在DispatcherServlet中使用URI [/static-resource/test.js]请求,名称为“dispatcher”|#]

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

    更新


    抱歉我的错误,我纠正错误但仍然回复404错误。嗯...可能还有其他问题?

1 个答案:

答案 0 :(得分:1)

Servlet映射是在最特定的URL匹配的基础上完成的。所以你正在使用正确的方法,但只是在你的URL中输入字静态错误:

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

将其更改为

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