有关于springmvc的介绍

本文详细介绍了Spring MVC框架的基本概念、工作流程及其核心组件,包括DispatcherServlet、HandlerMapping、HandlerAdapter、ViewResolver等,并解释了Spring MVC如何简化Web开发。

1.springmvc是什么?

Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层

进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。

 

2.springmvc架构图

上面的是springMVC的工作原理图:

1、客户端发出一个http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),web容器将请求转交给DispatcherServlet.

2、DipatcherServlet接收到这个请求之后将根据请求的信息(包括URL、Http方法、请求报文头和请求参数Cookie等)以及HandlerMapping的配置找到处理请求的处理器(Handler)。

3-4、DispatcherServlet根据HandlerMapping找到对应的Handler,将处理权交给Handler(Handler将具体的处理进行封装),再由具体的HandlerAdapter对Handler进行具体的调用。

5、Handler对数据处理完成以后将返回一个ModelAndView()对象给DispatcherServlet。

6、Handler返回的ModelAndView()只是一个逻辑视图并不是一个正式的视图,DispatcherSevlet通过ViewResolver将逻辑视图转化为真正的视图View。

7、Dispatcher通过model解析出ModelAndView()中的参数进行解析最终展现出完整的view并返回给客户端。

 

 

3.Dispatcher Servlet(Spring控制器)

在最简单的Spring MVC应用程序中,控制器是唯一的你需要在Java web部署描述文件(即web.xml文件)中配置的Servlet。Spring MVC控制器 ——通常称作Dispatcher Servlet,实现了前端控制器设计模式。并且每个web请求必须通过它以便它能够管理整个请求的生命周期。

当一个web请求发送到Spring MVC应用程序,dispatcher servlet首先接收请求。然后它组织那些在Spring web应用程序上下文配置的(例如实际请求处理控制器和视图解析器)或者使用注解配置的组件,所有的这些都需要处理该请求。

 

1、DispacherServlet前端控制器

负责用户请求和响应,是一个中央控制器(调度),调用HandlerMapping查找Handler,调用HandlerAdapter处理器适配器执行Handler,调用ViewResolver视图解析器去解析视图,有了DispacherServlet有利于框架扩展,减少了各各组件之间耦合性。

 

2、HandlerMapping处理器映射器

不需要开发,使用框架提供的

负责查找Handler(常用action),通过xml配置方式或注解方式将Handler类和request请求Handler链接地址进行对应配置。

3、HandlerAdapter处理器适配器

不需要开发,使用框架提供的

Springmvc提供了很多种适配器,注解适配器支持注解开发、原始servlet适配器(HanderRequestAdapter)支持原始servlet的执行。

负责执行Handler,适配器是按照一定的规则去执行Handler,调用Handler返回的结果是ModelAndView,ModelAndView将Model和view封装起来(模型数据和视图)

 

4、ViewResolver视图解析器

不需要开发,使用框架提供的

负责进行视图解析,返回View,框架执行很多类型的View(jstlView、pdfView。。。)

 

5、Handler处理器(需要开发)

需要开发,按照适配器的规则开发,比如适配器要求Handler实现某个接口,Handler必须实现接口。

 

6、View视图页面(jsp) (需要开发)

需要开发,jsp+jstl。为了视图通用性建议使用第三方框架,jstl。

 

处理器映射器、处理器适配器、视图解析器称为springmvc的三大件。

 

Spring3.1新特性

一、Spring2.5之前,我们都是通过实现Controller接口或其实现来定义我们的处理器类。

 

二、Spring2.5引入注解式处理器支持,通过@Controller 和 @RequestMapping注解定义我们的处理器类。并且提供了一组强大的注解:

 

需要通过处理器映射DefaultAnnotationHandlerMapping和处理器适配器AnnotationMethodHandlerAdapter来开启支持@Controller 和 @RequestMapping注解的处理器。

 

@Controller:用于标识是处理器类;

@RequestMapping:请求到处理器功能方法的映射规则;

@RequestParam:请求参数到处理器功能处理方法的方法参数上的绑定;

@ModelAttribute:请求参数到命令对象的绑定;

@SessionAttributes:用于声明session级别存储的属性,放置在处理器类上,通常列出模型属性(如@ModelAttribute)对应的名称,则这些属性会透明的保存到session中;

@InitBinder:自定义数据绑定注册支持,用于将请求参数转换到命令对象属性的对应类型;

 

三、Spring3.0引入RESTful架构风格支持(通过@PathVariable注解和一些其他特性支持),且又引入了更多的注解支持:

@CookieValue:cookie数据到处理器功能处理方法的方法参数上的绑定;

@RequestHeader:请求头(header)数据到处理器功能处理方法的方法参数上的绑定;

@RequestBody:请求的body体的绑定(通过HttpMessageConverter进行类型转换);

@ResponseBody:处理器功能处理方法的返回值作为响应体(通过HttpMessageConverter进行类型转换);

@ResponseStatus:定义处理器功能处理方法/异常处理器返回的状态码和原因;

@ExceptionHandler:注解式声明异常处理器;

@PathVariable:请求URI中的模板变量部分到处理器功能处理方法的方法参数上的绑定,从而支持RESTful架构风格的

 

 

 

加内容:

一、PO:persistant object 持久对象,可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。  

二、VO:value object值对象。通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象),在web上传递。  

三、DAO:data access object 数据访问对象,此对象用于访问数据库。通常和PO结合使用,DAO中包含了各种数据库的操作方法。通过它的方法,结合PO对数据库进行相关的操作。  

四、BO:business object 业务对象,封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作。  

五、POJO:plain ordinary java object 简单无规则java对象,我个人觉得它和其他不是一个层面上的东西,VO和PO应该都属于它。    

 

O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写。通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据。在O/R Mapping的世界里,有两个基本的也是重要的东东需要了解,即VO,PO。    

VO,值对象(Value Object),PO,持久对象(Persisent Object),它们是由一组属性和属性的get和set方法组成。从结构上看,它们并没有什么不同的地方。但从其意义和本质上来看是完全不同的。  

1.VO是用new关键字创建,由GC回收的。    PO则是向数据库中添加新数据时创建,删除数据库中数据时削除的。并且它只能存活在一个数据库连接中,断开连接即被销毁。  

2.VO是值对象,精确点讲它是业务对象,是存活在业务层的,是业务逻辑使用的,它存活的目的就是为数据提供一个生存的地方。    PO则是有状态的,每个属性代表其当前的状态。它是物理数据的对象表示。使用它,可以使我们的程序与物理数据解耦,并且可以简化对象数据与物理数据之间的转换。  

3.VO的属性是根据当前业务的不同而不同的,也就是说,它的每一个属性都一一对应当前业务逻辑所需要的数据的名称。    

PO的属性是跟数据库表的字段一一对应的。  

PO对象需要实现序列化接口。



转载自 https://www.cnblogs.com/wcf6676/p/5333352.html

### SpringMVC框架介绍及核心功能 SpringMVC 是 Spring 框架的一部分,专为构建 Web 应用程序设计。它是一个基于 Java 的轻量级 Web 框架,遵循 Model-View-Controller(MVC)设计模式[^1]。通过将应用程序的逻辑、数据和展示层分离,SpringMVC 提供了清晰的结构化开发方式。 #### 1. **SpringMVC 的基本概念** SpringMVC 的核心是 DispatcherServlet,这是一个前端控制器,负责接收所有 HTTP 请求并将它们分发到适当的处理器[^2]。以下是 SpringMVC 的关键组成部分: - **DispatcherServlet**:作为前端控制器,负责协调其他组件的工作。 - **HandlerMapping**:用于将请求映射到相应的控制器。 - **Controller**:处理具体的业务逻辑并返回模型和视图信息。 - **ViewResolver**:根据逻辑视图名称解析实际的视图页面。 - **ModelAndView**:包含模型数据和视图信息,用于渲染最终的用户界面。 #### 2. **SpringMVC 的核心功能** SpringMVC 提供了许多强大的功能,以简化 Web 应用程序的开发过程。以下是一些主要功能: - **灵活的请求处理**:支持多种请求参数绑定方式,包括路径变量、查询参数和表单数据等[^3]。 - **强大的数据验证**:集成 JSR-303 标准,允许开发者使用注解对输入数据进行验证。 - **国际化支持**:提供 i18n 功能,便于开发多语言应用程序。 - **RESTful 支持**:内置对 RESTful Web 服务的支持,方便创建基于资源的 API。 - **异常处理**:通过 @ExceptionHandler 注解实现统一的异常处理机制。 - **拦截器支持**:允许开发者通过拦截器对请求进行预处理或后处理。 #### 3. **SpringMVC 的工作流程** 当一个 HTTP 请求到达 SpringMVC 应用程序时,其处理流程如下: 1. 用户发送请求到 DispatcherServlet。 2. DispatcherServlet 查询 HandlerMapping 来找到合适的处理器。 3. 处理器执行业务逻辑,并返回 ModelAndView 对象给 DispatcherServlet。 4. DispatcherServlet 使用 ViewResolver 解析视图名称,然后将结果呈现给用户[^4]。 ```java @Controller public class ExampleController { @RequestMapping("/hello") public String handleRequest(Model model) { model.addAttribute("message", "Hello, SpringMVC!"); return "index"; // 返回逻辑视图名 } } ``` 上述代码示例展示了如何定义一个简单的控制器方法,该方法响应 `/hello` 请求并将消息传递给视图。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值