SpringMVC的工作流程?spring以及springMVC常用注解有哪些?springmvc前端控制器是什么?处理器映射器是什么?springmvc如何进行参数绑定

1 , SpringMVC的工作流程?

在这里插入图片描述

SpringMVC执行流程:
1.用户发送请求至前端控制器DispatcherServlet
2.DispatcherServlet收到请求调用处理器映射器HandlerMapping。
3.处理器映射器根据请求url找到具体的处理器,生成处理器执行链HandlerExecutionChain(包括处理器对象和处理器拦截器)一并返回给DispatcherServlet。
4.DispatcherServlet根据处理器Handler获取处理器适配器HandlerAdapter执行HandlerAdapter处理一系列的操作,如:参数封装,数据格式转换,数据验证等操作
5.执行处理器Handler(Controller,也叫页面控制器)。
6.Handler执行完成返回ModelAndView
7.HandlerAdapter将Handler执行结果ModelAndView返回到DispatcherServlet
8.DispatcherServlet将ModelAndView传给ViewReslover视图解析器
9.ViewReslover解析后返回具体View
10.DispatcherServlet对View进行渲染视图(即将模型数据model填充至视图中)。
11.DispatcherServlet响应用户。

组件说明:
1.DispatcherServlet:前端控制器。用户请求到达前端控制器,它就相当于mvc模式中的c,dispatcherServlet是整个流程控制的中心,由它调用其它组件处理用户的请求,dispatcherServlet的存在降低了组件之间的耦合性,系统扩展性提高。由框架实现
2.HandlerMapping:处理器映射器。HandlerMapping负责根据用户请求的url找到Handler即处理器,springmvc提供了不同的映射器实现不同的映射方式,根据一定的规则去查找,例如:xml配置方式,实现接口方式,注解方式等。由框架实现
3.Handler:处理器。Handler 是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler对具体的用户请求进行处理。由于Handler涉及到具体的用户业务请求,所以一般情况需要程序员根据业务需求开发Handler。
4.HandlAdapter:处理器适配器。通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。由框架实现。
5.ModelAndView是springmvc的封装对象,将model和view封装在一起。
6.ViewResolver:视图解析器。ViewResolver负责将处理结果生成View视图,ViewResolver首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。
7View:是springmvc的封装对象,是一个接口, springmvc框架提供了很多的View视图类型,包括:jspview,pdfview,jstlView、freemarkerView、pdfView等。一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。

原文

关于DispatcherServlet的配置说明

2 , spring以及springMVC常用注解有哪些?

(1)问题分析:

考官主要对spring和springMVC注解的考核,如Controller、Service、Repository、Autowired、RequestMapping、RequestBody、ResponseBody、PathVariable、RequestParam、RestController。

(2)核心答案讲解:

@Controller用于标记在一个类上,代表这个类是控制层组件。
@Service用于标记在一个类上,代表这个类是业务层组件。
@Repository用于标记在一个类上,代表这个类是数据访问层组件。
@RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
@RequestParam用于将指定的请求参数赋值给方法中的形参。
@PathVariable可以获取URL中的动态参数。
@RequestBody用于读取Request请求的body部分数据,通过适当的消息转换器转换为对象。
@ResponseBody用于将Controller的方法返回的对象,通过适当的消息转换器转换。
@RestController=@Controller+@ResponseBody,用于标记在一个类上。

(3)问题扩展

在使用@RequestBody 和@ResponseBody注解时,springMVC默认使用MappingJackson2HttpMessageConverter转换器将json格式的字符串和对象相互转换。

(4)结合项目中使用

对于前后端分离的项目,我们往往会给前端直接返回json格式的字符串由前端接收处理。

3 ,springmvc前端控制器是什么?处理器映射器是什么?

(1)问题分析:

考官主要是对springMVC组件的考核。前端控制器是DispatcherServlet,处理器映射器是HandlerMapping。

(2)核心答案讲解:

DispatcherServlet:前端控制器。用户请求到达前端控制器,它就相当于mvc模式中的c,DispatcherServlet是整个流程控制的中心,由它调用其它组件处理用户的请求,DispatcherServlet的存在降低了组件之间的耦合性。
HandlerMapping:处理器映射器。HandlerMapping负责根据用户请求找到Handler即处理器,springmvc提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等

(3)问题扩展:

Handler:处理器。Handler是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler对具体的用户请求进行处理。由于Handler涉及到具体的用户业务请求,所以一般情况需要程序员根据业务需求开发Handler。
HandlerAdapter:处理器适配器。通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。
ViewResolver:视图解析器。ViewResolver负责将处理结果生成View视图,ViewResolver首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。
View:视图。SpringMVC框架提供了很多的View视图类型的支持,包括:jstlView、freemarkerView、pdfView等。我们最常用的视图就是jsp。一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。

(4)结合项目中使用:

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

4 ,springmvc如何进行参数绑定

(1) 问题分析:

考官主要针对springMVC进行参数绑定的考核。

(2)核心答案讲解:

处理器适配器调用springmvc提供的参数绑定组件将前端传入的key/value数据转成controller方法的形参。

(3)问题扩展:

参数绑定组件:springmvc提供了很多converter(转换器),在特殊情况下需要自定义converter,比如对日期数据的绑定。

(4)结合项目中使用:

SpringMVC配置任何类型转换器 Converter(以时间类型为例)。
1. 定义时间DateConverter转换类实现  Converter<String, Date> 接口。
public class DateConverter implements Converter<String, Date> {
	@Override
	public Date convert(String dateStr) {
		Date date = null;
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		try {
			 date = dateFormat.parse(dateStr);
		} catch (ParseException e) {
			//e.printStackTrace();
			dateFormat = new SimpleDateFormat("yyyy-MM-dd");
			 try {
				date = dateFormat.parse(dateStr);
			} catch (ParseException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		}
		return date;
	}
}
2.配置spring-mvc.xml
<!-- 配置配置类型转换器注解驱动 -->
<mvc:annotation-driven conversion-service="conversionService" />
<!-- 配置类型转换器 -->
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
	<property name="converters">
		<set>
			<bean class="com.itcast.controller.DateConverter" />
		</set>
	</property>
</bean>
3. 页面把时间字符串按格式转成时间类型传往后台。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: SpringMVC是基于Spring框架之上的MVC架构模式的Web应用程序开发框架。它提供了丰富的特性,如请求映射,视图解析,数据绑定和校验,异常处理等,使得开发人员能够高效、灵活、简单地开发Web应用程序。 ### 回答2: SpringMVC是基于Spring框架的一种Web框架,它用于开发Web应用程序。它采用了MVC(Model-View-Controller)的设计模式,将Web应用程序分为三个组件:模型、视图和控制器模型(Model)是应用程序的数据和业务逻辑,它负责处理数据的读写和处理业务逻辑。模型通过与数据库或其他数据源进行交互,获取和保存数据。 视图(View)是应用程序的用户界面,它负责将模型的数据以合适的方式展示给用户。视图通常使用HTML、CSS和JavaScript来创建,并且可以根据用户的交互动态变化。 控制器(Controller)是应用程序的央协调器,它接收用户的请求并根据请求选择合适的业务逻辑来处理。控制器从视图接收用户的输入,并将其委托给相应的模型进行处理。一旦模型处理完毕,控制器将结果返回给视图,再由视图展示给用户。 SpringMVC提供了一套强大的特性和功能,使得开发者可以轻松构建可扩展、灵活和高效的Web应用程序。它具有良好的模块化和可插拔性,可以与其他Spring模块和第三方库很好地集成。同时,SpringMVC还提供了丰富的视图解析器、表单处理器、数据验证和异常处理等功能,以及灵活的URL映射和参数绑定机制。 总之,SpringMVC是一个成熟和流行的Web框架,它简化了Web开发过程,提高了开发效率和代码的可维护性,适用于各种规模的Web应用程序的开发。 ### 回答3: SpringMVC是一种基于Spring框架的Web开发框架。它旨在简化和优化基于Java的Web应用程序的开发过程。SpringMVC采用了Model-View-Controller(MVC)的架构模式,将应用程序的逻辑、数据和用户界面分开。该框架提供了一个灵活和可扩展的方式来构建Web应用程序。 在SpringMVC,请求从前端提交到Controller层。Controller负责处理用户的请求,从数据库获取所需的数据,并将其发送到视图层进行展示。视图层则负责显示模型数据给用户,并将用户的输入信息通过Controller传递给后台处理。 SpringMVC提供了很多有用的特性,其包括请求映射、数据绑定、表单验证、错误处理和国际化支持等。它还支持RESTful风格的Web服务,并具有很好的与其他技术的集成能力,如Hibernate、MyBatis和Thymeleaf等。 使用SpringMVC可以使开发人员更加专注于业务逻辑的实现,而无需过多关注底层的技术细节。它提供了一套清晰的开发模式和规范,有助于提高开发效率和代码的可维护性。 总之,SpringMVC是一个功能强大的Web开发框架,能够简化开发过程,提高效率,并且以其灵活性和可扩展性受到广大开发者的青睐。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明月常新

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值