1、pom.xml配置
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.12.RELEASE</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- 配置Maven的JDK编译级别 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<!-- 通过反射获取方法参数时,需要设置以下参数才能保证获取到的方法参数是有意义的 -->
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
</configuration>
</plugin>
<!-- 配置tomcat7插件,不需要安装本地tomcat -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>80</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
2、web.xml
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<!--
方式一:带后缀,比如 *.action 、 *.do
方式二:/ 不会拦截 .jsp,但是会拦截 .html等静态资源(静态资源是指除了servlet、jsp之外的
js、css、png等)
为什么配置 / 就会拦截静态资源?
因为Tomcat容器中也有一个web.xml(父),你的项目中也有一个web.xml(子),是一个继承关系,
父web.xml中有一个DefaultServlet,url-pattern 是一个 / ,此时我们自己的web.xml也
配置了一个 / ,覆盖了web.xml的配置。
为什么不拦截 .jsp 呢?
因为父web.xml中有一个 JspServlet,这个servlet拦截了 .jsp文件,而我们没有复写这个配置,
所以springmvc不会拦截.jsp,而是交给了tomcat处理。
方式三:/* 会拦截所有的请求
-->
<url-pattern>/</url-pattern>
</servlet-mapping>
3、springmvc.xml
<context:component-scan base-package="com.deppon"/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<mvc:annotation-driven/>
<!--静态资源配置,方案-->
<!--
原理:添加该标签配置之后,会在SpringMVC上下文中定义一个DefaultServletHttpRequestHandler对象,
这个对象如同一个检查人员,对进入DispatcherServlet的url请求进行过滤筛查,如果发现一个静态资源请求,
那么会把请求转由web应用服务器(tomcat)默认的DefaultServlet来处理,如果不是静态资源请求,那么继续
由SpringMVC请求处理
-->
<mvc:default-servlet-handler/>
4、处理类
@Controller @RequestMapping("/demo") public class TestController { @RequestMapping("/handler") public ModelAndView test(){ Date date = new Date(); ModelAndView modelAndView = new ModelAndView(); modelAndView.addObject("date",date); modelAndView.setViewName("success"); System.out.println("---------" + modelAndView.getClass()); return modelAndView; } @RequestMapping("/handler1") public String handler1(Map<String,Object> map){ Date date = new Date(); map.put("date",date); System.out.println("---------" + map.getClass()); return "success"; } /** * class org.springframework.validation.support.BindingAwareModelMap */ @RequestMapping("/handler2") public String handler1(ModelMap map){ Date date = new Date(); map.put("date",date); System.out.println("---------" + map.getClass()); return "success"; } @RequestMapping("/query") public String query(User user){ System.out.println("-----name-------" + user.getName()); System.out.println("______id________" + user.getAge()); Date date = new Date(); ModelMap map = new ModelMap(); map.put("date",date); return "success"; } }