SpringMVC简单入门:

1,SpringMVC是什么?

优秀的MVC框架,支持注解配置,帮我们如何传数据到View层。帮我们如何去管理Model(如User类的set和get的管理)。(JSP等);就是页面请求的处理,Controller控制层。(其实相当于我们servlet)。

2,SpringMVC的主要内容:

A,DispatcherServlet,

B,父子上下文,

C,拦截器,

D,全局的异常处理,

E,转发与重定向 (带参数重定向),

F,处理ajax请求.

3,SpringMVC的环境配置:

A,在web.xml文件里配置:前置控制器(DispatcherServlet)---监听上下文(listener)

B,在springMVC.xml文件里配置:注解支持----视图---拦截器【Spring MVC并没有总的拦截器,不能对所有的请求进行前后拦截。Spring MVC的拦截器,是属于HandlerMapping级别的,可以有多个HandlerMapping ,每个HandlerMapping可以有自己的拦截器。】

4,SpringMVC与struts2的区别:

a,实现机制

一,struts2框架是类级别的拦截,每次来了请求就创建一个controller中对应的Action,然后调用setter getter方法把request中的数据注入 。struts2实际上是通过setter getter方法与request打交道的。struts2中,一个Action对象对应一个request上下文。

二,spring3 mvc不同,spring3mvc是方法级别的拦截,拦截到方法后根据参数上的注解,把request数据注入进去。在spring3mvc中,一个方法对应一个request上下文,而方法同时又跟一个url对应。所以说从架构本身上 spring3 mvc就容易实现restful url。而struts2的架构实现起来要费劲,因为struts2 action的一个方法可以对应一个url,而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法。

三,spring mvc的入口是servlet,而struts2是filter.

b, Request数据共享

spring3mvc的方法之间基本上独立的,独享request response数据。请求数据通过参数获取,处理结果通过ModelMap交回给框架,方法之间不共享变量。而struts2搞的就比较乱,虽然方法之间也是独立的,但其所有Action变量是共享的。

c,传参数

struts是在接受参数的时候,可以用属性来接受参数,这就说明参数是让多个方法共享的。

d,设计思想

struts更加符合oop的编程思想, spring就比较谨慎,在servlet上扩展。

e,intercepter的实现机制

struts有以自己的interceptor机制,spring mvc用的是独立的AOP方式。这样导致struts的配置文件量还是比spring mvc大,论使用上来讲,spring mvc使用更加简洁,开发效率Spring MVC确实比struts2高。

f,spring3 mvc的验证也是一个亮点,支持JSR303

ajax的请求更是方便,只需一个注解@ResponseBody ,然后直接返回响应文本即可。

转载于:https://blog.51cto.com/java1234/1637948

SpringMVC的简单知识相关推荐

  1. handler和thread之间如何传输数据_网线虽常见,学问可不少,科普一下网线的简单知识及如何选择网线...

    互联网早已经进入千家万户,几乎每个家庭都有电脑和路由器了,虽然Wi-Fi已经大行其道,但网速往往不如有线网稳定,比如你用台式机打游戏的时候,往往会选择一根网线连接着路由器和电脑,而且家里装修走线时,墙 ...

  2. 新手小白初学Java(一)一些简单知识

    学习Java也差不多一周了,前几天刚接触了Linux,也发了点关于Linux和Unix的一些简单知识.接下来就是正式进入Java的学习进程中,学习了一些Java的基础知识及历史,以下就是我学习Java ...

  3. springmvc+quartz简单实现定时调度

    一.简介:Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十 ...

  4. SpringMVC+Mybatis基础知识和配置

    SpringMVC和Mybatis简单的记录一下,因为现在有比较新的SpringBoot和Mybatis plus简化了很多步骤. SpringMVC 使用 创建maven项目,pom.xml < ...

  5. dubbo与springmvc的简单使用

    什么是Dubbo? dubbo是阿里巴巴公司开源的高性能优秀服务框架,通过高性能的RPC(远程服务调用)实现服务的输入输出功能,可以与spring框架无缝整合: 传统的架构所有的模块都在一台服务器上, ...

  6. 论文浅尝 | 神经网络与非神经网络简单知识问答方法的强基线分析

    来源:NAACL 2018 链接:http://aclweb.org/anthology/N18-2047 本文关注任务为面向简单问题的知识库问答(仅用KB中的一个事实就能回答问题).作者将任务划分为 ...

  7. 1-1:Huawei路由交换技术简单知识

    Huawei 路由交换 华为简单路由交换技术 知识学习 网络通信基础 常见术语 网络五元组 华为简单路由交换技术 在当前世界中,网络时代的飞速发展,让人们的生活.学习.工作都新增了不一样的色彩.这里我 ...

  8. 简单知识——跨页面信息传递

    背景 一个简单的数据查询功能,列表页面有"查看详情"按钮,跳转详情页面时列表的一条记录信息需要传递到详情页面:而详情页面有"返回"按钮,返回的同时也需要将原列表 ...

  9. 分享爬虫的简单知识。附带爬虫案例。

    用Python写一个的爬虫.对于Python这个脚本语言来说写爬虫不是一件很难的事情.在写爬虫之前我们先了解一些简单的爬虫知识.爬虫分类:1. 通用网络爬虫 百度,门户网站 2. 聚焦网络爬虫 3. ...

最新文章

  1. 阿里某员工:年终奖到手,再见996
  2. android 学习随笔十二(网络:使用异步HttpClient框架)
  3. FlexoCalendar周日历出错的解决方法
  4. 计算机if函数and,excel if_EXCEL函数IF()+()和IF(and)区别是什么?
  5. 攻击者使用“非恶意软件”也能识别,将在RSA 2017上发布的新技术
  6. wpf cefsharp html源码,CefSharp For WPF基本使用
  7. 前端学习(1268):axios的响应结果
  8. java w732_技术联盟W732系统下载
  9. 转lua解析脚本过程中的关键数据结构介绍
  10. 仿射解密c语言程序实验报告,仿射加密解密 - 依姆哣特的个人空间 - OSCHINA - 中文开源技术交流社区...
  11. 动手学习数据分析(五)——数据建模及模型评估
  12. Java开发微信公众号
  13. php 倒计时 考试,php实现倒计时
  14. 中望3D 2021 自动标注
  15. 正确使用数字化仪前端信号调理功能
  16. 如何使用 PowerShell 锁定、解锁、启用和禁用 AD 帐户
  17. 电子表格的使用技巧!!实用啊!!!
  18. 谷歌PR权重劫持的原理与方法介绍
  19. Replicate Brogaard Stock Volatility Decomposition
  20. HBase如何实现模糊查询?

热门文章

  1. ITK:使用Viola Wells互信息执行多模式注册
  2. DCMTK:DcmFloatingPointDouble类的测试程序
  3. VTK:可视化之ScalarVisibility
  4. VTK:PolyData之ResamplePolyLine
  5. Qt Designer的UI文件格式
  6. C语言用‘%20‘替换字符串中的所有空格的算法(附完整源码)
  7. QT的QCommandLineOption类的使用
  8. C++ Opengl纹理贴图源码
  9. android窗口速度条,android 改变ViewPager切换页面时的速度
  10. 20位数字转化成6位不重复码_人力资源管理浅析身份证数字号码编排常识甄别年龄、性别、籍贯…...