1、对于struts.xml文件的结果配置来说,局部要由于全局。

2、我们既可以再Action中定义异常与结果,也可以定义全局的异常与结果,局部总是优于全局的,如果定义成全局,那么可以为所有的Action所公用,而局部的异常与结果只能被当前的Action所独享,不能为其他Action所共享。

3、struts2分层体系架构:

4、struts2的模型驱动(Model Driven),之前所讲的称作属性驱动(Property Driven)

5、属性驱动与模型驱动的比较

1)属性驱动灵活,准确;模型驱动不灵活,因为很多时候,页面所提交过来的参数并不属于模型中的属性,也就是说页面提交过来的参数与模型中的属性并不一致,这是很常见的情况。

2)模型驱动更加符合面向对象的编程风格,使得我们获得的是对象而不是一个个离散的值。

小结:推荐使用属性驱动编写Action。

6、服务器端代码的单元测试有两种模式

1)容器内测试(Jetty)

2)Mock测试(继承HttpServletRequest、HttpSession、HttpServletResponse等Servlet API)。

7、Preparable接口的作用是让Action完成一些初始化工作,这些初始化工作是放在Prepareble接口的prepare方法中完成的,该方法会在execute方法执行之前得到调用。

8、采取请求转发方式完成表单内容的添加会造成内容的重复插入。

9、采取重定向的方式实现数据的添加不会导致数据的重复插入。

10、防止表单重复提交的两种方式

1)通过重定向

2)通过Session Token(Session令牌):当客户端请求页面时,服务器通过token标签生成一个随机数,并且将该随机数放置到session当中,然后将该随机数发向客户端,如果用户第一次提交,那么会将该随机数发往服务器端,服务器接收到该随机数并且与session中所保存的随机数进行比较,这时两者值是相同的,服务器认为是第一次提交,并且将更新服务器端的这个随机数值;如果此时再次重复提交那么客户端发向服务器端的随机数还是之前的那个,而服务器端的随机数则已发生了变化,两者不同,服务器认为这时重复提交,进而转向invalid.token所指向的结果页面。

11、拦截器(Interceptor):拦截器是Struts2的核心,struts2的众多功能都是通过拦截器来实现的。

12、拦截器的配置

1)编写实现Interceptor(通常继承AbstractInterceptor类)接口的类

2)在struts.xml文件中定义拦截器

3)在action中使用拦截器

13、一旦定义了自己的拦截器,将其配置到action上后,我们需要在action的最后加上默认的拦截器栈:defaultStack。

14、定义拦截器时可以直接继承AbstractInterceptor抽象类(该类实现了Interceptor接口,并且对init和destroy方法进行了空实现),然后实现其抽象方法intercept即可。

15、方法过滤拦截器(可以对指定方法进行拦截的拦截器)

16、在方法过滤拦截器中,如果既没有指定的includeMethods参数,也没有指定excludeMethods参数,那么所有的方法都会被拦截,也就是说所有的方法都被认为是includeMethods;如果仅仅指定了includeMethods,那么只会拦截includeMethods中的方法,没有包含在includeMethods中的方法就不会被拦截。

17、package元素的abstract属性表示该包是抽象的,不能直接使用,需要由子包继承才能使用。struts-default这个package就是abstract的,因此需要我们继承这个包来使用。

18、package元素的namespace属性起到名字空间分割的作用。通常将namespace的属性值定义为页面所在的目录名。

19、进行文件上传时,必须将表单的method属性设为post,将enctype属性设为multipart/form-data。

struts2(2012/2/25)相关推荐

  1. Mark Links@2012/8/25

    1.CSS特效 http://www.cnblogs.com/refactor/archive/2012/08/24/2608878.html 转载于:https://www.cnblogs.com/ ...

  2. (2012.12.25)我的中级软件设计师考试

    我的中级软件设计师考试 ―― 2012.12.25(By: Neicole) 一.开篇 中级软件设计师,合格分是45/75(上午题)+ 45/75(下午题),然后,这次低分险过52+51.本文仅想简单 ...

  3. struts2(2012/2/24)

    1.struts2的类型转换,对于8个原生数据类型以及Date,String等常见类型,struts2可以使用内建的类型转换器实现自动转换:但对于自定义的对象类型来说,就需要我们自己指定类型转换的方式 ...

  4. jzoj 1388. 【2012.02.25普及组】探索的奶牛

    题目描述 FJ的奶牛喜欢探索农场周围的地形.一开始,所有N(1<=N<=1,000,000,000)只奶牛一起出发,但当碰到路口时,这一群牛可能会分成两部分(不能为空),每一部分都继续前进 ...

  5. 2012第25周国内Android应用下载排行榜动态

    本周榜单共包含安卓市场在内的11家第三方应用商店数据,榜单总结如下:搜狐应用市场,优亿市场变化最大:搜狐应用市场上周推广新游戏比较给力:淘宝客户端,TempleRun新版本发展无力:电池医生,汤姆猫本 ...

  6. 2012.5.25微博热报——面试程序员的方法、敏捷转型

    梁斌penny在微博上指出,面试程序员的时候,要的是生产力,而不是高智商:姜信宝Bob在微博上提出问题,从非常成熟的瀑布式转型到敏捷开发,是否需要制定敏捷开发流程.两条微博引发大家的热议. \ @梁斌 ...

  7. Windows常用软件列表(2012.03 Update)

    软件下载站: 绿软家园 http://www.downg.com/(前身是非凡的绿色下载站) http://sourceforge.net/ (全球最大开源软件开发平台和仓库) 软件资讯站:(搜索好用 ...

  8. 【原创】2012年3月24日 单骑至大峪 日志

    先上一张大峪水库全景图 原定于24日骑行至东大的骑行计划,由于诸多方面的原因被取消(响应人员不多,有人临时有事等等,唉,还是我号召力不够呀).自己还是挺想骑行的,不然对不起这么好的天气.于是上古城热线 ...

  9. 2012年一个屌丝程序员的学习总结:读书、户外、泡妞、习惯、母猪产后护理...

    书看了不等于看懂了,无法和 @yankay 颜开大牛 http://www.yankay.com/2012年学习小结/  或是 @吴多益-nwind  神牛http://qing.weibo.com/ ...

最新文章

  1. Nature Reviews:给医生的菌群分析指南(上)
  2. svn汉化包安装无效的解决办法
  3. AIX 6.1 异步 I/O 的 配置与性能评估
  4. php 使用redis锁限制并发访问类
  5. 微型计算机性能指标中可靠性是指连续,计算机接口原理定义
  6. 2021年度训练联盟热身训练赛第五场 H题In-place Sorting+贪心构造
  7. 查看 Linux 系统版本(发行版本)信息的相关命令语句
  8. python timeit用法_十大Python开发技巧
  9. python(48):re.split 多分隔符
  10. CleanCodeHandbook Chapter 9: Binary Search(48-50)
  11. [20150705]从AWR抽取有问题的sql语句.txt
  12. python颜色过渡
  13. 2020低压电工模拟考试系统及低压电工考试软件
  14. ES文件浏览器局域网传输文件分析
  15. python语言是什么语言
  16. PMSM FOC 滑膜观测器 SMO 算法
  17. Helix QAC企业级自动代码静态分析器
  18. 【C】39.程序中的三国天下
  19. 苹果推出iOS15.2正式版,“数字遗产”计划正式上线,你的“继承人”是谁?
  20. 10以内的分解与组成怎么教_“10以内数的组成”训练方法

热门文章

  1. 小例子(三)、winform控件的移动
  2. Objective-C中小怪兽的逻辑
  3. shell语法中的test命令用法
  4. Java:批量插入、修改数据到数据库中的用法
  5. IntelliJ IDEA 安装本地插件
  6. Instance Object
  7. 用Dell光盘安装系统
  8. .Net FSO简单小结(简单到不能再简单了)
  9. 半解TextBox灵异事件背后神秘的深度灵异事件
  10. 人工智能+教育的应用——教育的安全