SpringMVC

56 阅读1分钟

SpringMVC简介

Springmvc是spring框架的一个模块,spring和springmvc无需中间整合层整合
Springmvc是一个基于mvc的web框架

Spring执行原理

在这里插入图片描述

  • ①用户请求到前端控制器(DespatcherServlet)
    DispatcherServlet的作用:接收请求,调用其它组件处理请求,响应结果,相当于转发器、中央处理器,是整个流程控制的中心
  • ②前端控制器(DispatcherServlet)收到请求后会调用处理器映射器(HandlerMapping)
    HandlerMapping处理器映射器找到具体的Controller(根据注解 xml配置查找),并将找到的Controller返回给DispatcherServlet
  • ③前端控制器会调用处理器适配器(HandlerAdapter)
    处理器适配器会经过适配调用具体的Controller((Controller–> service --> Dao --> 数据库),Controller处理完成之后返回ModelAndView,处理器适配器将Controller处理的结果返回给前端控制器
  • ④前端控制器将执行的结果传给视图解析器(ViewReslover)
    视图解析器根据View视图解析后返回JSP页面
  • ⑤前端控制器根据Mode对View进行渲染(将模型填充至视图中),前端控制器将有数据的网页响应

配置前端控制器

在web.xml中配置前端控制器

  • 配置springmvc前端控制器, 将所有请求交给springmvc来处理
  • 配置springmvc核心配置文件的位置,默认Springmvc的配置文件是在WEB-INF目录下,默认的名字为springmvc-servlet.xml,如果要放在其他目录,则需要指定如下配置
  • 其中的斜杠(/)表示拦截所有请求(除JSP以外), 所有请求都要经过springmvc前端控制器
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5">
	
	<!-- 配置springmvc前端控制器, 将所有请求交给springmvc来处理 -->
	<servlet>
		<servlet-name>springmvc</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		
		<!-- 配置springmvc核心配置文件的位置,默认Springmvc的配置文件是在WEB-INF目录下,默认的名字为springmvc-servlet.xml,如果要放在其他目录,则需要指定如下配置:
		-->
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:springmvc-config.xml</param-value>
		</init-param>		
	</servlet>
	<!-- 其中的斜杠(/)表示拦截所有请求(除JSP以外), 所有请求都要经过springmvc前端控制器 -->
	<servlet-mapping>
		<servlet-name>springmvc</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>

</web-app>

创建并配置springmvc-config.xml

<?xml version="1.0" encoding="UTF-8"?>

<!-- 1.配置前端控制器放行静态资源(html/css/js等,否则静态资源将无法访问) -->
<mvc:default-servlet-handler/>

<!-- 2.配置注解驱动,用于识别注解(比如@Controller) -->
<mvc:annotation-driven></mvc:annotation-driven>

<!-- 3.配置需要扫描的包:spring自动去扫描 base-package 下的类,
	如果扫描到的类上有 @Controller、@Service、@Component等注解,
	将会自动将类注册为bean 
 -->
<context:component-scan base-package="com.tedu.controller">
</context:component-scan>

<!-- 4.配置内部资源视图解析器
	prefix:配置路径前缀
	suffix:配置文件后缀
 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	<property name="prefix" value="/WEB-INF/pages/"/>
	<property name="suffix" value=".jsp"/>
</bean>