Struts2研磨
来源:互联网 发布:php项目打包 编辑:程序博客网 时间:2024/04/30 02:38
同事买了本《研磨Struts2》,花了一个小时略读完。总结如下:
1.Struts2本质上只是一个基于MVC的Web框架,就与Spring MVC是一样的作用。
2.相比于Spring MVC来说,Struts2是围绕着FilterDispatcher来拦截url然后找到struts.xml中配置的action,之后再返回result。而Spring MVC是围绕着DispatcherServlet直接找到@Controller中的对应Mapping方法,然后返回ModelView.
3.相比于Spring MVC来说,Struts2的优势很显然,它的ActionSupport已经封装了HttpServletRequest和HttpServletResponse类,所以相比于Spring的Controller来说,它是解耦和了Servlet API已经不再需要自己手动去从Request中去取值了。
4.正因为它的优势不需要手动去改动Request,所以它的拦截器要怎么弄呢,它提供了一个ValueStack的东西。
5.Struts2中的Action常常会扮演着即是模型又是控制器的角色。而它因此提供了一个叫ModelDriven的类,让Action来实现它,那么它就可以对应一个POJO对象而不需要再在Action类里面写getter和setter方法了。
6.看到Result这章的时候有了解到配置里的ResultType,还有PreReusltListener捕获返回结果前的异常。
7.当然它还有很强大的targlib,国际化,验证框架,Ajax等。
8.这个是我想说的重点:
如何防止重复提交表单?
首先来说原理,struts2采用的是Token机制,在表单页面初始化的时候在Session中加入Token的name以及一个随机数,因为在<s:form>中还加入了<s:token>所以会在此时也将此Token作为隐藏的表单内容。当我们在进行表单提交的时候,Struts2的Token拦截器在抵达Action前会进行校验,如果提交的token随机数和Session中的token随机数相同,那么就提交到Action,否则根据配置是选择跳转到指定的重复提交错误提示页面还是选择使用TokenSession拦截后直接阻塞掉重复提交。
- Struts2研磨
- 《研磨struts2》 前言
- 研磨Struts2 第一章 Struts2概述-1
- 研磨Struts2 第一章 Struts2概述-2
- 《研磨struts2》 系列文章汇总贴
- 《研磨struts2》 系列文章汇总贴
- 研磨Struts2-Action的数据-学习笔记
- 《研磨struts2》之struts.xml的配置
- eclipseDTD如何引入(例子出自"研磨struts2")
- 《研磨struts2》 第一章 Struts2概述 之 Struts2基础
- 《研磨struts2》 第一章 Struts2概述 之 Struts2和MVC
- 《研磨struts2》 第一章 Struts2概述 之 MVC模式
- 《研磨struts2》 第二章 Struts2的HelloWorld 之 概述
- 研磨struts2 第二章 Struts 2的HelloWorld
- 《研磨struts2》第四章 Action 之 4.1 Action基础
- 《研磨struts2》第四章 Action 之 4.2 Action的实现
- 《研磨struts2》第四章 Action 之 4.3 Action的数据
- 《研磨struts2》第四章 Action 之 4.4 Action的配置
- Linux中的platform
- c++ runtime "symbol lookup error"
- 基于quartz开发企业级任务调度应用
- [安卓破解]NightMode去广告版本
- Xcode 升级后,常常遇到的遇到的警告、错误,解决方法
- Struts2研磨
- 九度 题目1529:棋盘寻宝
- 数组 传入 函数
- HTML 5 的自定义 data-* 属性和jquery的data()方法的使用
- Android启动画面实现
- 使用HTML 5和CSS3制作登录页面完整步骤
- MySQL拷贝表的几种方式
- Android反编译与重编译(一)
- 【Java】不使用第三方变量交换两个变量的值