SpringMVC学习2_Spring MVC架构及其三大组件

一、 Spring MVC 架构

1. 架构图

	(图是我自己根据理解画的,如果有不正确的,欢迎指出,谢谢。。)

在这里插入图片描述

说明:
(1) 前端控制器基本类似于老大的角色一样,对进来的请求任务进行分配与响应,需要在web.xml中主动进行配置;
(2)springMVC 三大组件,不需要我们来写,入门程序中我们也没有对其进行相应的配置就可以成功的运行程序,是因为在其内部有一个默认的配置。

二、Spring MVC三大组件

1. 三大组件

HandlerMapping  处理器映射器,将Web请求映射到对应的Handler上
HandlerAdapter 处理器适配器,业务逻辑处理并返回模型数据
ViewResolver 视图解析器,在浏览器中显示数据模型

2. 配置

2.1 默认配置路径:
在这里插入图片描述

该配置文件中HandlerMapping的配置:
在这里插入图片描述
HandlerAdapter的配置:
在这里插入图片描述
ViewResolver配置:
在这里插入图片描述

2.2 手动配置
通过看源码,发现默认配置的映射器与适配器均已过时,而是使用是最新的映射器与适配器,所以,可以自己配置最新的映射器与适配器:

   <!-- 处理器映射器 -->
   <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>
   
   <!-- 处理器适配器 -->
   <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>

这两个配置可以使用一个注解驱动的配置完成:

        <!-- 处理器映射器 -->
	<!-- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean> -->
	<!-- 处理器适配器 -->
	<!-- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean> -->

	<!-- 注解驱动 -->
	<mvc:annotation-driven />

2.3 视图解析器配置
在开发过程中,基本上所有的jsp文件都会放在WEB-INF下,所以可以手动对视图进行配置,从而在代码中只要写需要跳转的jsp文件名即可:

        <!-- 视图解析器 -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	     <property name="prefix" value="/WEB-INF/jsp/" />
	     <property name="suffix" value=".jsp" />
	</bean>

2.4 页面效果
修改原Handler中的代码,重启tomcat

@RequestMapping(value = "/first.action")
	public ModelAndView show() {

		ModelAndView view = new ModelAndView();
		view.setViewName("first");
		return view;
	}

在这里插入图片描述
可正常运行,三大组件配置完成。
完整配置如下:

	<!-- 注解驱动 -->
	<mvc:annotation-driven />
	
	<!-- 视图解析器 -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	     <property name="prefix" value="/WEB-INF/jsp/"/>
	     <property name="suffix" value=".jsp"/>
	</bean>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值