SpringMVC简单配置
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";} }