==================
Spring MVC静态资源
==================
1 前端页面
/src/main/webapp/addBook.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
添加一本图书
添加一本图书
表单提交
2 测试
通过浏览器访问http://localhost:8080/SpringMVC/addBook.jsp:
报404错。
3 “/*”和“/”的区别
/src/main/webapp/WEB-INF/web.xml:
----> SpringMVC
| |
| v
| org.springframework.web.servlet.DispatcherServlet
| ...
|
|
----- SpringMVC
^
|
/*
“/*”
- 拦截所有的http请求,包括对jsp的请求
- 一律映射到名为SpringMVC的Servlet
- 该Servlet是一个类型为DispatcherServlet的对象
- 该对象将addBook.jsp理解为一个控制器(Controller)的名字
- 但并没有名为addBook.jsp的控制器对象
- 报404错
“/”与“/*”一样,也会拦截所有http请求,但不包括对jsp的请求。
4 放行jsp
/src/main/webapp/WEB-INF/web.xml:
...
...
/
...
...
通过浏览器访问http://localhost:8080/SpringMVC/addBook.jsp:
成功打开页面。
5 其它静态资源
“/”虽然会放行jsp,但对html/css/js/图片等静态资源的请求依然会被拦截。
/src/main/webapp/pages/index.html:
Spring MVC
Spring MVC
通过浏览器访问http://localhost:8080/SpringMVC/pages/index.html:
报404错。
/src/main/webapp/css/style.css:
body {
background: lightskyblue;
}
/src/main/webapp/addBook.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
...
...
...
...
通过浏览器访问http://localhost:8080/SpringMVC/addBook.jsp:
样式不起作用。
6 静态资源映射
/src/main/resources/spring-servlet.xml:
...
...
通过浏览器访问http://localhost:8080/SpringMVC/pages/index.html:
成功打开页面。
通过浏览器访问http://localhost:8080/SpringMVC/addBook.jsp:
成功应用样式。
类似地,还可以包含更多静态资源映射:
...
...
例程:SpringMVC