目录
第三章、解读url-pattern
3.1 配置详解
3.1.3 *.do
在没有特殊要求的情况下,SpringMVC的中央调度器DispatcherServlet的<url-pattern/>常使用后辍匹配方式,如写为*.do 或者 *.action, *.mvc 等。这种方式可以访问静态资源文件。
3.1.2 /
可以写为/,因为DispatcherServlet会将向静态资源的获取请求,例如.css、.js、.jpg、.png等资源的获取请求,当作是一个普通的Controller请求。中央调度器会调用处理器映射器为其查找相应的处理器。当然也是找不到的,所以在这种情况下,所有的静态资源获取请求也均会报404错误。
3.2 使用/时访问静态资源文件的方式
3.2.1 添加静态资源文件
3.2.2 index.jsp文件
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<script type="text/javascript" src="js/jquery-3.4.1.js"></script>
</head>
<body>
<form action="some.do" method="post">
姓名:<input type="text" name="name"/><br/>
年龄:<input type="text" name="age"/><br/>
<input type="submit" value="提交参数"/><br/>
</form>
<br/>
<img src="image/blackpink.png" alt="我是一个静态资源文件,不能显示">
</body>
</html>
3.2.3 Controller对象
@Controller
public class MyController {
@RequestMapping(value = "/some.do")
public ModelAndView doSome(String name,Integer age){
System.out.println("doSome,name = " + name + ",age = " + age);
ModelAndView mv = new ModelAndView();
mv.addObject("myname",name);
mv.addObject("myage",age);
mv.setViewName("show");
return mv;
}
}
3.2.4 第一种解决方式---使用<mvc:default-servlet-handler/>
声明了<mvc:default-servlet-handler/>后,springmvc框架会在容器中创建DefaultServletHttpRequestHandler处理器对象。它会像一个检查员,对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理。一般的服务器都有默认的Servlet。
在Tomcat中,有一个专门用于处理静态资源访问的Servlet名叫DefaultServlet。其<servlet-name/>为default。可以处理各种静态资源访问请求。该Servlet注册在Tomcat服务器的web.xml文件中,该文件位于Tomcat安装目录/conf/web.xml。
DefaultServlet的作用:The default servlet for all web applications, that serves static resources. It processes all requests that are not mapped to o