SpringMVC的简单知识
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的简单知识相关推荐
- handler和thread之间如何传输数据_网线虽常见,学问可不少,科普一下网线的简单知识及如何选择网线...
互联网早已经进入千家万户,几乎每个家庭都有电脑和路由器了,虽然Wi-Fi已经大行其道,但网速往往不如有线网稳定,比如你用台式机打游戏的时候,往往会选择一根网线连接着路由器和电脑,而且家里装修走线时,墙 ...
- 新手小白初学Java(一)一些简单知识
学习Java也差不多一周了,前几天刚接触了Linux,也发了点关于Linux和Unix的一些简单知识.接下来就是正式进入Java的学习进程中,学习了一些Java的基础知识及历史,以下就是我学习Java ...
- springmvc+quartz简单实现定时调度
一.简介:Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十 ...
- SpringMVC+Mybatis基础知识和配置
SpringMVC和Mybatis简单的记录一下,因为现在有比较新的SpringBoot和Mybatis plus简化了很多步骤. SpringMVC 使用 创建maven项目,pom.xml < ...
- dubbo与springmvc的简单使用
什么是Dubbo? dubbo是阿里巴巴公司开源的高性能优秀服务框架,通过高性能的RPC(远程服务调用)实现服务的输入输出功能,可以与spring框架无缝整合: 传统的架构所有的模块都在一台服务器上, ...
- 论文浅尝 | 神经网络与非神经网络简单知识问答方法的强基线分析
来源:NAACL 2018 链接:http://aclweb.org/anthology/N18-2047 本文关注任务为面向简单问题的知识库问答(仅用KB中的一个事实就能回答问题).作者将任务划分为 ...
- 1-1:Huawei路由交换技术简单知识
Huawei 路由交换 华为简单路由交换技术 知识学习 网络通信基础 常见术语 网络五元组 华为简单路由交换技术 在当前世界中,网络时代的飞速发展,让人们的生活.学习.工作都新增了不一样的色彩.这里我 ...
- 简单知识——跨页面信息传递
背景 一个简单的数据查询功能,列表页面有"查看详情"按钮,跳转详情页面时列表的一条记录信息需要传递到详情页面:而详情页面有"返回"按钮,返回的同时也需要将原列表 ...
- 分享爬虫的简单知识。附带爬虫案例。
用Python写一个的爬虫.对于Python这个脚本语言来说写爬虫不是一件很难的事情.在写爬虫之前我们先了解一些简单的爬虫知识.爬虫分类:1. 通用网络爬虫 百度,门户网站 2. 聚焦网络爬虫 3. ...
最新文章
- 阿里某员工:年终奖到手,再见996
- android 学习随笔十二(网络:使用异步HttpClient框架)
- FlexoCalendar周日历出错的解决方法
- 计算机if函数and,excel if_EXCEL函数IF()+()和IF(and)区别是什么?
- 攻击者使用“非恶意软件”也能识别,将在RSA 2017上发布的新技术
- wpf cefsharp html源码,CefSharp For WPF基本使用
- 前端学习(1268):axios的响应结果
- java w732_技术联盟W732系统下载
- 转lua解析脚本过程中的关键数据结构介绍
- 仿射解密c语言程序实验报告,仿射加密解密 - 依姆哣特的个人空间 - OSCHINA - 中文开源技术交流社区...
- 动手学习数据分析(五)——数据建模及模型评估
- Java开发微信公众号
- php 倒计时 考试,php实现倒计时
- 中望3D 2021 自动标注
- 正确使用数字化仪前端信号调理功能
- 如何使用 PowerShell 锁定、解锁、启用和禁用 AD 帐户
- 电子表格的使用技巧!!实用啊!!!
- 谷歌PR权重劫持的原理与方法介绍
- Replicate Brogaard Stock Volatility Decomposition
- HBase如何实现模糊查询?
热门文章
- ITK:使用Viola Wells互信息执行多模式注册
- DCMTK:DcmFloatingPointDouble类的测试程序
- VTK:可视化之ScalarVisibility
- VTK:PolyData之ResamplePolyLine
- Qt Designer的UI文件格式
- C语言用‘%20‘替换字符串中的所有空格的算法(附完整源码)
- QT的QCommandLineOption类的使用
- C++ Opengl纹理贴图源码
- android窗口速度条,android 改变ViewPager切换页面时的速度
- 20位数字转化成6位不重复码_人力资源管理浅析身份证数字号码编排常识甄别年龄、性别、籍贯…...