比较常用的MVC框架有Struts 和 SpringMVC。

Struts 是Java Web MVC框架中曾经不争的王者。经过长达九年的发展,Struts占有了MVC框架中最大的市场份额。但是Struts某些技术特性上已经落后于新兴的MVC框架。面对Spring MVC、Webwork2这些设计更精密,扩展性更强的框架,Struts受到了前所未有的挑战。

Spring MVC通过一套MVC注解,让POJO成为处理请求的控制器,无须实现任何接口,同时,Spring MVC还支持REST风格的URL请求:注解驱动及REST风格的Spring MVC是Spring3.0最出彩的功能之一。此外,Sping MVC在数据绑定、视图解析、本地化处理及静态资源处理上都有许多不俗的表现。它在框架设计、扩展性、灵活性等方面全面超越了Struts、WebWork等MVC框架,从原来的追赶者一跃成为MVC的领跑者。

和众多其他Web框架一样,它基于MVC设计理念,此外,它采用了松散耦合可插拔组件结构,比其他MVC框架更具扩展性和灵活性。

Sping MVC在数据绑定、视图解析、本地化处理及静态资源处理上都有许多不俗的表现。

Spring MVC框架围绕DispatcherServlet这个核心展开,DispatcherServlet是Sprrng MVC的总导演、总策划,它负责截获请求并将其分派给相应的处理器处理。

SpringMVC的工作流程:

1.客户端发起Http请求,DispatcherServlet接受客户端的请求(相当于控制器);

2.DispatcherServlet通过HandlerMapping寻找合适的处理器(相当于IOC);

3.DispatcherServlet将请求发给Handler处理(如有必要,Handler还可以通过调用其它分布式服务实现目标);

4.Handler将处理结果以“ModelAndView”的形式反馈给DispatcherServlet;

5.DispatcherServlet根据ModelAndView中“View”的指示,通过ViewResolver解析到合适的View;

6.DispatcherServlet将ModelAndView中的"Model"加载到上一步解析出来的View中(这个View可能是网页、xml、pdf等等);

7.客户端获得Http响应。

流程示意图如下:

java web mvc spring_Java下Web MVC的领跑者:SpringMVC相关推荐

  1. linux安装基于PHP的web软件,Linux下Web服务器应用之基于LAMP构建phpwind论坛

    Linux下Web服务器应用之 基于LAMP构建phpwind论坛 v什么是LAMP Ü目前最为成熟的一种企业网站应用模式,可提供动态Web站点应用及开发环境 v构成组件 ÜLinux.Apache. ...

  2. 电竞人才平均月薪感受下!上海薪资领跑全国

    9月5日,BOSS直聘发布<电竞行业人才趋势观察>,围绕电竞人才的市场需求.岗位薪资及不同城市间的差异展开探讨. BOSS直聘观察到,2019年上半年,电竞行业主要岗位的平均招聘月薪达到9 ...

  3. java web mvc_构建Java Web应用程序时遵循MVC的三个步骤

    java web mvc 第1步 做 始终通过servlet / action bean处理URL(POST表单,单击链接等),而不是通过JSP处理 为什么 ActionBeans(无论某些框架调用那 ...

  4. spring mvc学习(50):java.lang.ClassNotFoundException: org.springframework.web.servlet. DispatcherSe

    今天朋友发了个maven项目给我看,问我为什么启动不了.说实话,一直用Jfinal都快不会用spring了- 还是决定看看. 接收了文件,是maven构建的,打开eclipse,导入maven项目,然 ...

  5. java springmvc https_【Java Web开发学习】Spring MVC 使用HTTP信息转换器

    [Java Web开发学习]Spring MVC 使用HTTP信息转换器 @ResponseBody和@RequestBody是启用消息转换的一种简洁和强大方式 消息转换(message conver ...

  6. Java web登录拦截器_Spring MVC 拦截器实现登录

    上篇博文我在博客中讲到如何使用spring MVC框架来实现文件的上传和下载,今天小钱给大家再来分享和介绍Spring MVC框架中相当重要的一块功能--拦截器. 关于拦截器的概念我在这里就不多说了, ...

  7. 如何用Java类配置Spring MVC(不通过web.xml和XML方式)

    DispatcherServlet是Spring MVC的核心,按照传统方式, 需要把它配置到web.xml中. 我个人比较不喜欢XML配置方式, XML看起来太累, 冗长繁琐. 还好借助于Servl ...

  8. 【Java Web开发学习】Spring MVC 拦截器HandlerInterceptor

    [Java Web开发学习]Spring MVC 拦截器HandlerInterceptor 转载:https://www.cnblogs.com/yangchongxing/p/9324119.ht ...

  9. ASP.NET Core 入门教程 2、使用ASP.NET Core MVC框架构建Web应用

    原文:ASP.NET Core 入门教程 2.使用ASP.NET Core MVC框架构建Web应用 一.前言 1.本文主要内容 使用dotnet cli创建基于解决方案(sln+csproj)的项目 ...

最新文章

  1. 数据合并设计_八秒搞定合并相同内容的单元格,你却加班了1小时
  2. asp开发工具_VSCode搭建完美的asp.net core开发环境,看完这篇就够了
  3. linux db2创建存储过程语法,EF基础一-db2存储过程中循环语句while do...-oracle 创建DBLINK_169IT.COM...
  4. 转:java网络编程-HTTP编程
  5. Bash脚本教程之mktemp 命令,trap 命令
  6. 【Spark】SparkStreaming-加载外部配置文件
  7. Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.
  8. Autodesk FBX
  9. Java 算法数字黑洞
  10. Unity超基础学习笔记(一)
  11. (笔试题)和一半的组合数
  12. 切比雪夫距离(bzoj 3210: 花神的浇花集会)
  13. 步骤1:mybatis工程的创建
  14. git push 提示:更新被拒绝,因为您当前分支的最新提交落后于其对应的远程分支。的解决办法
  15. iOS GBK转换为Utf8
  16. GoF 的 23 种设计模式
  17. 时间序列分析实验报告总结_时间序列分析实验报告
  18. Java批量下载有道单词发音+与Anki卡片整合
  19. 2021计算机专业考研科目,2021北京航空航天大学计算机考研科目
  20. linux ext3 fsck一定要慎用

热门文章

  1. 【CF1152F】Neko Rules the Catniverse(动态规划)
  2. 2:数据库的CURD
  3. 第一次个人项目【词频统计】——PSP表格
  4. Centos如何通过yum安装php7
  5. Swift coreAnimation 加计时器写的游戏《飞机大战》
  6. 初识AngularJS 之 HelloWorld和数据绑定
  7. 今天执行grep命令差点把服务器搞崩
  8. 【Unity3D基础教程】给初学者看的Unity教程(一):GameObject,Compoent,Time,Input,Physics...
  9. Java Socket文件上传
  10. Asp.net MVC - 使用PRG模式(附源码)