SpringMVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能MVC 模块,其功能和Strtus2,Struts1是类似的,只不过是实现的原理不同而已。其中Struts2是通过过滤器来实现路劲和action的映射等控制流转功能,而Struts1和SpringMVC则是通过最传统的servlet来实现对其代码封装的。但是都是非常相似的MVC流程框架。简单看一下SpringMVC框架中的知识点,这里是从数据的流转前后顺序进行分的:

一,SpringMVC是一个MVC的流程框架,同样适用在我们的表现层到action模块中,是MVC架构模式中真正的Controller。SpringMVC在流程处理方面更加灵活,可以很容易的进行扩展,可以和Spring框架进行无缝集成,毕竟是一家公司生产的,就是为了解决web开发问题,增加竞争性。但是SpringMVC有侵入性,action需要继承框架指定的类,或者实现指定的接口。

二,看一个它实现的原理图吧:

和Struts2还是很相似的,有一个核心过滤器Dispatcher,和核心配置文件springMVC-servlet.xml,通过过滤做一些固定的任务,到达指定的action进行相关业务的操作。看网上一篇文章吧,写的挺详细的:spring MVC原理

三,初步使用:

1,由于SpringMVC是继Spring后续开发的,它利用了Spring的jar包,这里看一下需要导入的jar包:

commons-logging.jar(日志输出)

spring-webmvc.jar(SpringMVC核心包)

spring.jar        (Spring核心包)

2,编写springMVC-servlet.xml文件,存放到/WEB-INF/目录下,基本编写如下:

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
  3. <beans>
  4. <!-- VIEW DEFINITIONS ,视图解析器,框架提供了好多解析器,这里举例其中的一种-->
  5. <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  6. <property name="prefix" value="/WEB-INF/jsp/spring/"/>
  7. <property name="suffix" value=".jsp"/>
  8. </bean>
  9. <!-- DEFINITIONS OF PUBLIC CONTROLLERS ,映射解析器-->
  10. <bean id="defaultHandlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
  11. </beans>
  12. <!-- 控制器类,name表示访问的URI路径,class表示对应的action类 -->
  13. <bean name="/hello.html" class="com.ljh.springmvc.controller.HelloWorldController"></bean>

3,在web.xml中增加对springMVC框架的支持,其实就是增加SpringMVC框架核心过滤器的servlet的配置:

  1. <!-- SpringMVC的核心控制器(前端控制器) -->
  2. <servlet>
  3. <servlet-name>springMVC</servlet-name>
  4. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  5. <init-param>
  6. <!-- 指定配置文件的全名,如果不指定,则为这里的servlet-name的属性SpringMVC+"-servlet.xml" -->
  7. <param-name>contextConfigLocation</param-name>
  8. <param-value>/WEB-INF/springMVC-servlet.xml</param-value>
  9. </init-param>
  10. <!-- 启动服务器时创建此serlvet核心对象 -->
  11. <load-on-startup>1</load-on-startup>
  12. </servlet>
  13. <servlet-mapping>
  14. <servlet-name>springMVC</servlet-name>
  15. <url-pattern>*.html</url-pattern>
  16. </servlet-mapping>

4,此种对应的action是有侵入性的,需要实现Contronller接口,当然也可以继承实现此接口的父类,后边介绍到:

  1. public class HelloWorldController implements Controller {
  2. /**
  3. * 类似于Servlet的doGet(),doPost()方法
  4. */
  5. public ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception {
  6. //接收数据,这里有request,response等,对于数据处理方便了很多
  7. //调用服务层。
  8. //判断返回结果
  9. //ModelAndView用于表示视图:给予视图层文件的名称。(根据框架的视图解析器,增加前缀,和后缀,查找配置资源。)
  10. //ModelAndView也可以表示模型对象,将数据传递给视图层。(默认情况下是采用转发方式进行跳转。)
  11. return new ModelAndView("success","username","zhangsan");  //   /WEB-INF/jsp/spring/ +  success  + .jsp
  12. }
  13. }

这样基本框架实现就算完成了,很多框架的搭建都是这些步骤,只不过需要我们注意其中的细节,配置文件的编写等等。

SpringMVC的总体认识就是这些,后边会总结其中的一些知识点,这里不再赘述!通过和Struts2对比着学习,来寻找一些异同,通过实践来使自己理解的更加深刻。

SpringMVC(一)——流程框架总体介绍的更多相关文章

  1. SpringMVC(1)流程框架总体介绍

    SpringMVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能MVC 模块,其功能和Strtus2 ...

  2. Magicodes.Admin.Core开源框架总体介绍

    框架说明 Magicodes.Admin.Core框架在ABP以及ASP.NET ZERO的基础上进行了封装和完善,目前基于.NET Core 2.0+(Framework版本),由于部分组件在.NE ...

  3. 一、EnterpriseFrameWork框架总体介绍

    EnterpriseFrameWork框架是自己在工作之余的得意之作,经过了几年时间的不断重构,现在终于有了现在的样子:刚开始只是为了方便开发WEB系统,随着项目越做越多,新的功能也就不断补充进去,补 ...

  4. springmvc执行流程详细介绍

    1.什么是MVC MVC是Model View Controller的缩写,它是一个设计模式 2.springmvc执行流程详细介绍 第一步:发起请求到前端控制器(DispatcherServlet) ...

  5. Spring框架系列(5) - 深入浅出SpringMVC请求流程和案例

    前文我们介绍了Spring框架和Spring框架中最为重要的两个技术点(IOC和AOP),那我们如何更好的构建上层的应用呢(比如web 应用),这便是SpringMVC:Spring MVC是Spri ...

  6. 基于MVC4+EasyUI的Web开发框架形成之旅--框架总体界面介绍

    在前面介绍了一些关于最新基于MVC4+EasyUI的Web开发框架文章,虽然Web开发框架的相关技术文章会随着技术的探讨一直写下去,不过这个系列的文章,到这里做一个总结,展示一下整体基于MVC4+Ea ...

  7. SpringMVC由浅入深day01_1springmvc框架介绍

    springmvc 第一天 springmvc的基础知识 课程安排: 第一天:springmvc的基础知识 什么是springmvc? springmvc框架原理(掌握) 前端控制器.处理器映射器.处 ...

  8. 基于WebForm+EasyUI的业务管理系统形成之旅 -- 总体介绍

    一.系统总体介绍 企业业务管理系统是针对经营企业管理而开发的专业管理软件, 是以“精细管理.过程监控”为设计理念,全面满足企业的信息化管理需求,充分发挥专业.平台.灵活等优点. 集进销存.财务.CRM ...

  9. ABP(现代ASP.NET样板开发框架)系列之1、ABP总体介绍

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之1.ABP总体介绍 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...

随机推荐

  1. Web Service工作原理

    Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的 ...

  2. How to face setbacks

    I’ve been in a bad mood since I started on the American Accent. I became even more upset when I adde ...

  3. [Redux] Extracting Presentational Components -- AddTodo

    The code to be refactored: let nextTodoId = 0; class TodoApp extends Component { render() { const { ...

  4. 单片机脚本语言-移植lua到stm32-MDK

    Lua简单介绍 Lua[1]  是一个小巧的脚本语言.作者是巴西人.该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能. Lua脚本能够非常easy的被C/C++ 代码调用, ...

  5. C#用注册表开机自动启动某某软件

    代码如下: public static void chkAutoRun(bool isRun) { if (isRun)//开机自动启动 { try { RegistryKey runKey = Re ...

  6. SpringTest2

    Spring 框架第二天 AOP切面编程 今天重点内容: 1. 什么是AOP ? AOP实现原理是怎样的? AOP相关术语 2. AOP底层实现 (了解) ----- JDK动态代理. Cglib动态 ...

  7. .net 2.0中半角全角错误的解决办法

    VS2005中.net 2.0编译报错如下所示:'System.Windows.Forms.ImeMode' does not contain a definition for 'OnHalf'.只需 ...

  8. DTO学习系列之AutoMapper(六)----EntityFramework和AutoMapper的婚后生活

    写在前面 我到底是什么? 越界的可怕 做好自己 后记 文章标题主要关键字:mapping DTOs to Entities,注意并不是“Entities to DTOs”,表示实体对象到DTO的转换, ...

  9. js判断上传文件的类型和大小

    //检测文件大小和类型 function fileChange(target){ //检测上传文件的类型 if(!(/(?:jpg|gif|png|jpeg)$/i.test(target.value ...

  10. [Apache系列]怎样在windows下配置apache vhost

    找到你的Apache安装目录,下图为小编的Apache安装的目录 2 点击conf文件夹  进入配置目录,找到httpd.conf 文件, 3 打开httpd.conf 文件,如图, 找到地475行, ...