如何你的DispatcherServlet拦截"*.do"这样的有后缀的URL,就不存在访问不到静态资源的问题。
如果你的DispatcherServlet拦截"/",为了实现REST风格,拦截了所有的请求,那么同时对*.js,*.jpg等静态文件的访问也就被拦截了。
先下图,我做的项目是用html做跳转,由于代码洁癖,尽量使用纯ajax和html作为交互显示页面,用springMVC做后台处理程序。
方案一:激活Tomcat的defaultServlet来处理静态文件
需要在web.xml中配置
1
2
3
4
5
6
7
8
9
10
11
12
|
<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-mapping>
<servlet-name>
default
</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
|
方案二: 只对.do文件拦截
1
2
3
4
|
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/.
do
</url-pattern>
</servlet-mapping>
|
方案三:使用mvc:resources 。location是指webroot下的所在路径。mapping是指要处理的映射。
1
|
<mvc:resources location=
"/pages/"
mapping=
"/pages/**"
/>
|
注意头文件
1
2
3
4
5
6
7
8
9
10
11
|
<beans xmlns=
"http://www.springframework.org/schema/beans"
xmlns:context=
"http://www.springframework.org/schema/context"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc=
"http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http:
//www.springframework.org/schema/beans
http:
//www.springframework.org/schema/beans/spring-beans-3.0.xsd
http:
//www.springframework.org/schema/context
http:
//www.springframework.org/schema/context/spring-context-3.0.xsd
http:
//www.springframework.org/schema/mvc
http:
//www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
|