springMVC 相对于 Structs 的优势
智者说,没有经过自己的思考和估量,就不能接受别人的东西。资料只能是一个参考,至于是否正确,还得自己去分辨
SpringMVC相对于Structs的几个优势:
1、springMVC安全性更高,structs2框架是类级别的拦截,每次request请求structs2都会为之创建一个action,然后将数据注入到实体been中,所以在structs2中,一个action对应一个request上下文。springMVC是方法级别的拦截,每个request对应一个方法,然后通过注解将数据注入到对应的实体中,所以在springMVC中,一个方法对应一个request上下文,粒度更小,所以说springMVC更安全
2、springMVC直接使用注解的方式,配置更加的简洁清晰,structs2将所有路径配置放在structs.xml文件中,多人开发的时候更容易产生冲突,配置相对复杂,但这也是structs2的一个优点,就是可以在这个文件中找到所有的路径。
3、springMVC的异常处理机制更加的优秀。Structs2因为在Action的execute方法声明时就抛出了Exception异常,所以我们无需再execute方法中捕捉异常,仅需在struts.xml 中配置异常处理;在springMVC中采用统一的异常处理框架,配置异常处理之后直接在执行方法中抛出对应的异常,更加的准确,显示更加友好的用户界面提示。
4、相对于Structs2,springMVC的参数传递更加方便。springMVC直接使用对应的实体去接收form提交的表单信息,而structs2要在form中指定对应的实体,否则structs无法区分form中的数据对应哪个实体
springMVC 相对于 Structs 的优势的更多相关文章
- Activity 与 springMvc相整合
准备环境: springMvc框架及Activity所需要的jar: 创建spring-activity.xml文件,里面内容: <?xml version="1.0" en ...
- mybatis相对于ibatis的优势
2010年,apache的Ibatis框架停止更新,并移交给了google团队,同时更名为MyBatis.从2010年后Ibatis在没更新过,彻底变成了一个孤儿框架.一个没人维护的框架注定被myba ...
- sonne_game网站开发03 spring-mvc+freemarker整合
今天的任务就是在spring+mybatis+springmvc的基础上,将freemarker整合进来. freemarker是什么? freemarker是一种模板引擎.它的目的是基于模板和数据, ...
- spring-mvc+freemarker整合(sonne_game网站开发03)
今天的任务就是在spring+mybatis+springmvc的基础上,将freemarker整合进来. freemarker是什么? freemarker是一种模板引擎.它的目的是基于模板和数据, ...
- SpringMVC一路总结(三)
在博文<SpringMVC一路总结(一)>和<SpringMVC一路总结(二)>中,该框架的应用案例都是是基于xml的形式实现的.然而,对于大型项目而言,这种xml的配置会增加 ...
- SpringMVC一路总结(
SpringMVC一路总结(三) 在博文<SpringMVC一路总结(一)>和<SpringMVC一路总结(二)>中,该框架的应用案例都是是基于xml的形式实现的.然而,对于大 ...
- springMVC 配置和使用
springMVC相对于Struts2学习难度较为简单,并且更加灵活轻便. 第一步:导入jar包 spring.jar.spring-webmvc.jar.commons-logging.jar.sp ...
- [Swift]LeetCode870. 优势洗牌 | Advantage Shuffle
Given two arrays A and B of equal size, the advantage of A with respect to B is the number of indice ...
- Leetcode 870. 优势洗牌
870. 优势洗牌 显示英文描述 我的提交返回竞赛 用户通过次数49 用户尝试次数92 通过次数49 提交次数192 题目难度Medium 给定两个大小相等的数组 A 和 B,A 相对于 B 的 ...
随机推荐
- 多态与异常处理ppt作业
1.请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识. 答:1.抛出异常 当程序发生异常时,产生一个异常事件,生成一个异常对象,并把 ...
- VS2010添加资源文件
VS2010中资源文件管理在 双击打开Resources.resx 选择左上角资源文件类型 然后复制资源文件 粘贴到空白区域 则会自动生成资源文件代码 在项目中使用该资源文件时,通过global::P ...
- 用CMake屏蔽Release运行时的控制台窗口
在默认情况下,CMake构建的VS工程运行时会弹出控制台窗口,可以通过手动方式进行屏蔽,也可以通过CMake命令进行屏蔽. 手动方式:分为两步 第一步:右击VS项目,选择"属性"- ...
- UI颜色值
UI颜色值 http://xh.5156edu.com/page/z1015m9220j18754.html
- Nginx启动报错: could not open error log file: open() &q
启动nginx报如下错误: nginx: [alert] could not open error log file: open() "/usr/local/nginx/logs/error ...
- 关于js作用域链,以及闭包中的坑
eg:链式作用域,想在外部读取blogName的值得方法 <script>var authorName="山边小溪";function doSomething(){ ...
- IOS 使用KBMMW 访问JAVA 服务
废话少说,如何使用KBMMW 做个过渡,使IOS 可以使用JAVA 的服务? 其实KBMMW 本身就要java service 的服务,但是为了把这个问题说清楚,我手工做一个例子. 首先,要使用JAV ...
- sort详解2
linux sort 命令详解 sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比 ...
- socket-自我总结(2)
这里总结下一个服务端与多个客户端之间的通信. 先看demo: #/usr/bin/env python #_*_coding:utf-8_*_ __author__ = 'ganzl' import ...
- MFC中无边框窗口的拖动
void CXXXXDialog::OnLButtonDown(UINT nFlags, CPoint point) { PostMessage(WM_NCLBUTTONDOWN, HTCAPTI ...