SpringMVC(一)——流程框架总体介绍

本文介绍了SpringMVC框架的基本概念及其实现原理,包括所需jar包、配置文件编写、核心过滤器配置等内容,并通过与Struts2的对比帮助读者更好地理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

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

 

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

 

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

 

三,初步使用:

           1,由于SpringMVC是继Spring后续开发的,它利用了Springjar包,这里看一下需要导入的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.      
  4.     <beans> 
  5.         <!-- VIEW DEFINITIONS ,视图解析器,框架提供了好多解析器,这里举例其中的一种--> 
  6.         <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
  7.             <property name="prefix" value="/WEB-INF/jsp/spring/"/> 
  8.             <property name="suffix" value=".jsp"/> 
  9.         </bean> 
  10.      
  11.         <!-- DEFINITIONS OF PUBLIC CONTROLLERS ,映射解析器--> 
  12.         <bean id="defaultHandlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> 
  13.     </beans> 
  14.     <!-- 控制器类,name表示访问的URI路径,class表示对应的action类 --> 
  15.     <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.     /**
  4.      * 类似于Servlet的doGet(),doPost()方法
  5.      */ 
  6.     public ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception { 
  7.         //接收数据,这里有request,response等,对于数据处理方便了很多 
  8.          
  9.         //调用服务层。 
  10.          
  11.         //判断返回结果 
  12.          
  13.         //ModelAndView用于表示视图:给予视图层文件的名称。(根据框架的视图解析器,增加前缀,和后缀,查找配置资源。) 
  14.         //ModelAndView也可以表示模型对象,将数据传递给视图层。(默认情况下是采用转发方式进行跳转。) 
  15.         return new ModelAndView("success","username","zhangsan");  //   /WEB-INF/jsp/spring/ +  success  + .jsp 
  16.     } 
  17.  

 

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值