深入了解springMVC

作者 : 开心源码 本文共2612个字,预计阅读时间需要7分钟 发布时间: 2022-05-11 共64人阅读

什么是spring MVC

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应使用程序的全功能 MVC 板块。用 Spring 可插入的 MVC 架构,从而在用Spring进行WEB开发时,可以选择用Spring的SpringMVC框架或者集成其余MVC开发框架,如Struts1(现在一般不使用),Struts2(一般老项目用)等。

spring mvc简介

springmvc是spring的一个板块,提供web层处理方案(基于mvc设计架构)

采使用springmvc的好处

Spring MVC中提供一个DispatcherServlet, 无需额外开发。

springMVC中用基于xml的配置文件,可以编辑,无需重新编译应使用程序。

springMVC实例化控制器,并根据使用户输入来构造bean。

springMVC可以自动绑定使用户输入,并正确的转换数据类型。例如,springMVC能自动解析字 符串,并设置float或者decimal类型的属性。

springMVC可以检验使用户输入,若校验不通过,则重定向回输入表单。输入校验是可选的, 支持编码方式以及公告。关于这一点,springMVC内置了常见的校验器。

springMVC是spring框架的一部分。可以利使用spring提供的其它能力。

springMVC支持国际化和本地化,支持根据使用户区域显示多国语言。

springMVC支持多种视图技术,最常见的JSP技术以及其它技术包括Velocity和FreeMarker。

用springMVC的优势

1、清晰的角色分配: 前段控制器(dispatcherServlet) , 请求四处理器映射(handlerMapping), ?解决器适配器(HandlerAdapter), 视图解析器(ViewResolver),

解决器和页面控制器(Controller),验证器(Validator),命令对象(Command),

表单对象(FromObject)

2、分工明细

3、和Spring框架无缝结合

spring mvc框架流程图

SpringMvc整个的执行流程:

1、发起请求到前台控制器(DispatcherServlet?)

2、前台控制器请求HandlerMapping查找Handler(可以根据xml、注解进行查找)

3、解决器映射器HandlerMapping向前台控制器DispatcherServlet?返回Handler

4、前台控制器DispatcherServlet 调使用解决器适配器HandlerAdapter 执行Handler

5、解决器适配器HandlerAdapter 执行Handler

6、Handler执行完给解决器适配器返回ModelAndView

7、解决器适配器向前台控制器返回ModelAndView (ModelAndView 是SpringMvc的底层对象 包括model和view)

8、前台控制器请求视图解析器去解析视图

  根据逻辑视图名解析成真正的视图(jsp)

9、视图解析器向前台控制器返回view

10、前台控制器进行视图渲染

  视图渲染将模型数据(模型数据在ModelAndView对象中)填充到request域

11、前台控制器向使用户响应结果

组件:

1、前台控制器DispatcherServlet(不需要程序员开发)

作使用接收请求,响应结果,相当于转发器,中央解决器。

有了DispatcherServlet减少了其它组件之间的耦合度。

2、解决器映射器HandlerMapping(不需要程序员开发)

作使用:根据请求的url查找Handler

3、解决器适配器HandlerAdapter

作使用:按照特定规则(HandlerAdapter要求的规则)去执行Handler

4、解决器Handler(需要程序员开发)

注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler

5、视图解析器View resolver(不需要程序员开发)

作使用:进行视图解析,根据逻辑视图名解析成真正的视图(view)

6、视图View(需要程序员开发jsp)

View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf…)

springMVC常使用注解

1. 在 struts-config.xml 文件中加入

2.在 applicationContext.xml 文件中加入

3.cn.base.GetPersonListAction 实现请求响应代码

可以看出一次请求需求如此多的步骤,在加上一个项目下来有很多这样的请求响应,将给配置文件管理带来很大的麻烦。

经过对 Spring 的深入应使用, Spring 本身提供的 URL 请求控制,对其天然支持可以让我们不需要 applicationContext.xml 再次公告一次 URL 请求 Bean ,即减少了 Struts 的公告 URL ,达到减少些繁琐的配置。但只是少了少量而已,同样也会面临着配置文件的管理问题。

Spring 注解将给我们的工作带来些轻松,利使用反射机制原理出现的注解就是为理解决配置大量的配置问题。请看下解决一次简单的请求响应代码

@Controller –公告控制器

@RequestMapping(“/person”) –公告URL

public class PersonControl extends BaseController {

@Autowired –业务接口注入

private personServices personServices;/*** 取得人员列表*@param request* @param response* @throws Exception*/

@RequestMapping(params = “method=geList”) –即解决/person.do? method=geList方法

public void getnodeList(HttpServletRequest request,HttpServletResponse response) throws Exception { //解决请求//解决响应}}

可以看出,在代码上加入注解可以省去我们上面说的多个配置文件的工作,达到简便的 MVC 解决请求响应。

再配上简单的配置文件公告,就可轻松解决项目的一律请求控制工作。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 深入了解springMVC

发表回复