集成springmvc需要的maven依赖的包和相关的属性值添加到pom.xml
<!--springmvc 集成-->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>${jstl.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${javax.serclet.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
其次在web.xml配置文件中添加DispatcherServlet配置,代码如下:
<web-app>
<display-name>Archetype Created Web Application</display-name>
<context-param><!--全局变量-->
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener><!--监听器实现了servletContextListener接口,其作用是启动web容器,自动装配了applicationcontext的配置信息-->
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--配置DispatcherServlet-->
<servlet>
<servlet-name>spring-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring-dispatcher</servlet-name>
<!--默认匹配所有的匹配-->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
DispatcherServlet类是前置控制器,主要用于拦截匹配的请求,拦截规则要自己定义,把拦截下来的请求,依据相应的规则分发到目标Controller来处理,是配置springMVC的第一步。
<init-param> 整个项目的局部变量,相当于设定了一个固定的值,只能在当前的servlet中被使用。容器启动时会加载到配置文件SpringMVC.xml
<load-on-startup>表示启动容器时初始化该servlet,当值为0或者大于0时,表示容器的应用启动时加载并初始化这个servlet,如果值小于0或者为指定,则表示容器在该servlet选中的时候才被加载,正值越小servlet的优先级就越高,应用启动时就会越先加载,值相同时,容器就会自己选择顺序来加载。
<servlet-mapping> 该标签声明了与该servlet相应的匹配规则,每个<url-pattern>标签代表1个匹配规则。
<url-pattern>URL匹配规则表示那些请求交给springMVC处理,“/” 表示拦截所有的请求。
URL匹配规则如下:
<servlet-mapping>
<servlet-name>spring-dispatcher</servlet-name>
<!--默认匹配所有的匹配-->
<url-pattern>/</url-pattern>
<!--精准匹配-->
<!--<url-pattern>/wpq</url-pattern>-->
<!--<url-pattern>/index.html</url-pattern>-->
<!--<url-pattern>/test/wpq.html</url-pattern>-->
<!--扩展名匹配 以“*”开头的字符串被用于扩展名匹配-->
<!--<url-pattern>*.jsp</url-pattern>-->
<!--路径匹配,以"/"字符开头,以“/*" 结尾的字符串用于路径匹配。-->
<!--<url-pattern>/wpq/*</url-pattern>-->
<!--匹配顺序:当一个URL与多个servlet的匹配规则可以匹配时则按照“精确路径>最长路径>扩展名"这样的优先级匹配对应的servlet。-->
</servlet-mapping>
创建springMVC.xml
<!--扫描controller(后端控制器),并且扫描其中的注解-->
<context:component-scan base-package="com.wpq.cn.controller"/>
<!--设置配置方案-->
<!--会自动注册requestmappinghandlermapping和requesetmappinghandleradapter两个bean-->
<!--是springmvc为@Controller分别请求所必需的的,并提供了数据绑定支持,@NumberFormatannotation-->
<!--支持,@DateTimeFormat 支持,@Valid 支持,读写xml 和读写json的支持等功能-->
<mvc:annotation-driven/>
<!--配置jsp 显示Viewresolver(视图解析器)-->
<!--InternalResourceViewResolver 最常用的视图解析器,当控制层返回“hello”时,-->
<!--InternalResourceViewResolver 解析器会自动添加前缀和后缀,最准结果路径为:/WEB-INF/views/hello.jsp-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
<!--prefix suffix是通用后缀和前缀配置预留标签-->
</bean>