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";
}
}
文章详细介绍了SpringMVC的配置过程,包括pom.xml中的依赖设置,如spring-webmvc和maven-compiler-plugin,以及web.xml中DispatcherServlet的配置。同时,展示了如何在springmvc.xml中配置视图解析器和启用注解驱动。此外,还展示了TestController类的代码,演示了不同类型的请求映射和模型数据处理。
1119

被折叠的 条评论
为什么被折叠?



