SpringMVC核心配置文件的解析和应用

使用maven导入包

  这里我使用的是maven导入jar包,以前不知道maven,感觉导入jar包时特别麻烦,现在好了,直接Ctrl+c,Ctrl+v就完事了。

  • 配置SpringMVC的jar包

  SpringMVC所需要的jar包叫做

spring-webmvc.jar

这个jar文件包含Spring MVC框架相关的所有类。包含国际化、标签、Theme、视图展现的FreeMarker、JasperReports、Tiles、Velocity、XSLT相关类。当然,如果你的应用使用了独立的MVC框架,则无需这个JAR文件里的任何类。

这里给出spring-webmvc在pom.xml中的代码,大家也可以自己在maven中央仓库中查找
1
2
3
4
5
6
7
<!-- 依赖Spring MVC-->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>


+ 配置Servlet的jar包

  SpringMVC是以Servlet为基础的,这里当然不能少了Servlet的配置,关于Servlet和SpringMVC的关系在接下来的博客里会有所涉及。

这里给出servletz在pom.xml中的代码,大家也可以自己在maven中央仓库中查找
1
2
3
4
5
6
7
8
           <!--servlet的配置-->
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>


## 在web.xml中配置dispatcherServlet

dispatcherServlet是前端控制器设计模式的实现,提供SpringWebMVC的集中访问点,而且负责职责的分派,而且与spring IOC容器无缝集成,从而可以获得Spring的优势。其主要职责是调度工作,本身用于控制流程。

1.文件上传解析,如果请求类型是multipart将通过MultipartResolver进行文件上传解析;

2.通过HandlerMapping,将请求映射到处理器(返回一个HandlerExecutionChain,它包括一个处理器、多个HandlerInterceptor拦截器);

3.通过handlerAdapter支持多种类型的处理器(handlerExceptionChain中的处理器);

4.通过ViewResolver解析逻辑视图名到具体视图实现;

5.本地化解析;

6.渲染具体的视图等;

7.如果执行过程中遇到异常将交给handlerExceptionResolver来解析;

可以说dispatcherServlet是SpringMVC的核心
  • 下面是dispatcherServlet在web.xml中的相关配置
1
2
3
4
5
6
7
8
9
10
11
12
13
<!-- springmvc的前端控制器,拦截所有请求  -->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<!-- Map all requests to the DispatcherServlet for handling -->
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<!--这里设为拦截所有请求,可以根据自己需求设置-->
<url-pattern>/</url-pattern>
</servlet-mapping>
  • dispatcherServlet文件一般默认在WEB-INF目录下面,如果需要更改则通过在servlet的初始参数里面修改contextConfigLocation的值,例如:
1
2
3
4
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>自己设定的路径</param-value>
</init-param>

配置dispatcherServlet-servlet.xml

  如果按照默认的话对应的dispatcherServlet文件会以dispatcherServlet-servlet.xml放在WEB-INF目录下面

  • 首先给出基本的dispatcherServlet的配置代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!--SpringMVC的配置文件,包含网站跳转逻辑的控制,配置  -->
<context:component-scan base-package="com.lgq" use-default-filters="false">
<!--只扫描控制器。 -->
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>

<!--配置视图解析器,方便页面返回 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="suffix" value=".jsp"></property>
</bean>

<!--两个标准配置 -->
<!-- 将springmvc不能处理的请求交给tomcat -->
<mvc:default-servlet-handler/>
<!-- 能支持springmvc更高级的一些功能,JSR303校验,快捷的ajax...映射动态请求 -->
<mvc:annotation-driven/>

  以上就是SpringMVC的基本配置,其中一些细节方面的会慢慢在以后的博文里面说明

-------------本文结束感谢阅读-------------