Spring MVC

基于模型-视图-控制器(Model-View-Controller)实现,该web框架用于构建灵活和松耦合的web应用程序。

图上的标注很详细,下面是个人理解:

1.请求进入DispatcherServlet(SpringMVC的前端控制器);2.由其查询一个或多个处理器映射(根据请求所携带的url信息决策);3.将请求发送给对应控制器;4.控制器完成逻辑处理后产生模型(model,一些需返回给用户并在浏览器上显示的信息),格式化后标示出用于渲染的视图名称 ;5.使用视图解析器将逻辑视图匹配到一个特定的视图;6.请求通过视图实现。

搭建SpringMVC

1.配置DispatcherServlet

将下列servlet加入web.xml

<servlet><servlet-name>yourName</servlet-name><servlet-class>
org.springframwork.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup><init-param><param-name>contextConfigLocation</param-name><param-value>classpath: servlet-context.xml</param-value></init-param>
</servlet>

注:默认情况下Dispatcher在加载时会从一个基于这个Servlet名字的xml文件(youName-servlet.xml)中加载Spring应用上下文,可以像上文那样配置路径。

** 2.匹配DispatcherServlet**

<serlevt-mapping><servlet-name>yourName</servlet-name><url-pattern>/</url-pattern>
</servlet-mapping>

注:通过将Dispatcher映射到/,声明它会作为默认的servlet并且会处理所有请求(包括对静态资源的)。也可用mvc:resources建立一个服务于静态资源的服务器。

在servlet-context.xml中加入

<mvc:resources mapping=”/resources/**” location=”/resources/” />

属性mapping代表路径必须以/resourses开始,也包含了其所有子类,location表明了提供服务的文件位置,

3.配置处理器映射

Spring自带多个处理器映射:

BeanNameUrlHandlerMapping, ControllerBeanNameHandlerMapping, ControllerClassNameHandlerMapping, DefaultAnnotationHandlerMapping, SimpleUrlHandlerMapping.

创建处理器映射,通常只需在Spring中配置一个Bean。如果没有找到,Dispatcher将创建 并使用BeanNameUrlHandlerMapping 和 DefaultAnnotationHandlerMapping。 恰好主要使用基于注解的控制器类,后者就满足需求了。

在servlet-context.xml中配置

<mvc:annotation-driven />

** 4.定义控制器**

Class前加注解 @Controller 声明该类为控制器类,

方法前加注解 @RequestMapping({“/”, ”/home”}) 指明该方法处理页面”/“或者”/home”路劲请求。 需在 servlet-context.xml中配置自动扫描

<context:component-scan base-package=”com/example/controller”/>

5.测试控制器

Junit测试,此步可略,主要妨出错。

6.解析视图

Spring自带多个视图解析器,以InternalResourceView 为例,它通过为逻辑视图名称添加前缀和后缀来确定Web应用程序中模板的路径。

假设已经将所有的jsp放在”/WEB-INF/views“目录下,可在sevlet-context中配置

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/"/><property name="suffix" value=".jsp"></property>
</bean>

可通过添加<property name= ”viewClass” value= " "/> 引入其他视图支持。

注:之前使用过的一套框架使用的视图解析器为FreeMarker的,感觉现在比较流行于是搜了下http://my.oschina.net/HuifengWang/blog/300461#comment-list,这里解释的还不错。别的视图解析器网上细节很多,此处就不表了。

7.定义视图

就是写网页,与后端处理对应。

8.完成Spring应用上下文

将Spring mvc与Spring其它文件整合

在web.xml里加入

<listener><listener-class>
org.springframework.web.context.ContextLoaderListener</listen-calss>
</listener>

applicationContext.xml的文件位置就可以有两种默认实现:

  • 第一种:直接将之放到/WEB-INF下,之在web.xml中声明一个listener;

  • 第二种:将之放到classpath下,但是此时要在web.xml中加入<context-param>,用它来指明你的applicationContext.xml的位置以供web容器来加载

<context-param><param-name>contextConfigLocation</param-name><param-value>classpath: root-context.xml</param-value>
</context-param>

转载于:https://my.oschina.net/jingzigege/blog/730167

镜子的Spring之旅 之 Spring MVC相关推荐

  1. Spring简化Java开发_第1章—Spring之旅—简化Spring的java开发

    简化Spring的java开发 1.1简介 区别于EJB的特性 简化javaBean,为了降低java开发的复杂性,Spring采取了以下4种关键策略: 基于POJO的轻量级和最小入侵性编程 通过依赖 ...

  2. Spring 2.5:Spring MVC中的新特性

    转载说明:infoQ就是牛人多,看人家去年就把Spring2.5注视驱动的MVC写出来了,还是这么详细,我真是自叹不如,今天偶尔看到这篇文章非常认真的拜读了2遍,简直是茅厕顿开啊....\(^o^)/ ...

  3. Spring实战笔记——(1)Spring之旅(上)

    Spring实战笔记--(1)Spring之旅 文章目录 Spring实战笔记--(1)Spring之旅 1.1简化Java开发 1.1.1 激发POJO的潜能 1.1.2依赖注入 依赖注入的实现 构 ...

  4. spring之旅第四篇-注解配置详解

    spring之旅第四篇-注解配置详解 一.引言 最近因为找工作,导致很长时间没有更新,找工作的时候你会明白浪费的时间后面都是要还的,现在的每一点努力,将来也会给你回报的,但行好事,莫问前程!努力总不会 ...

  5. Spring MVC集成Spring Data Reids和Spring Session实现Session共享

    说明:Spring MVC中集成Spring Data Redis和Spring Session时版本是一个坑点,比如最新版本的Spring Data Redis已经不包含Jedis了,需要自行引入. ...

  6. Spring.net与Asp.net Mvc结合示例《转载》

    一.介绍 因为项目要用到Ioc框架,所以要为Ioc框架选型,优秀的Ioc框架好几款,例如:sping.net,castle,unity--当然还不止三款,还有其它的Ioc框架,castle跟unity ...

  7. 搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架

    搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 学习网址哦: 很不错的 http://www.cnblogs.com/fly_dragon/archive/2010/ ...

  8. 开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo项目分析

    开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo,这个是一个在网上流传比较多的Spri ...

  9. 我的Spring 之旅---Spring实战

    Spring 之旅 Spring的使命是简化java开发: 未了降低java开发的复杂性,Spring有四种关键策略: 1.基于pojo的轻量级和最小侵入性编程; 2.通过依赖注入和面向接口实现松耦合 ...

最新文章

  1. 零基础入门学习Python(18)-全局变量与局部变量
  2. 【干货】优秀的移动客户端 Web App设计,让用户体验飞起来
  3. github上的linux项目,克隆GitHub上项目的非Master分支
  4. spock 集成测试_使用Spock 1.2简化对遗留应用程序的集成测试
  5. mysql先排序再分组筛选_mysql 怎样先排序再分组
  6. C++编码类定义的规则
  7. Hive中表名、别名的限制
  8. 一键杀死最近打开APP
  9. 倒车雷达matlab仿真,倒车雷达系统设计(超声波-SEG4)
  10. 蔚来、宁德时代的换电攻坚战
  11. 一体式计算机内存怎么变大,一体机电脑内存多大合适?
  12. Java 对一组时间进行处理 提出连续的时间段
  13. 电脑只有一个c盘怎么办?看我怎么一招解决!
  14. 【SQL】interval关键字用法
  15. 2020最全的BAT大厂面试题整理改版3面直接拿到offer
  16. 混淆矩阵(第一类错误,第二类错误)
  17. 应用在洗衣机触摸屏中的触摸芯片
  18. VisionPro 定位添加瞄准效果
  19. 定时器灵魂拷问? 最终loop等于几?
  20. “大数据“实验室建设解决方案

热门文章

  1. Nginx转发配置规则
  2. 在线SVN仓库实现:金山快盘+TortoiseSVN(Win)+SCPlugin(Mac)
  3. 十一. 一步步破解JEB 2.0demo版一
  4. Android:自定义CoordinatorLayout.behavior 简单的仿UC首页
  5. VTK之MPR重建源码分析(VTK官方例子)
  6. vue 跳转支付宝支付页面
  7. sterm机器人编程_STEAM机器人编程——“小汽车”课程
  8. 华为手机助手安卓版_西瓜助手安卓版下载-西瓜助手app手机版下载v1.6.3[系统工具]...
  9. saltstack formulas和salt-run
  10. 国内网页登录onedrive