流程:

1. StrutsPrepareAndExcuteFilter:StrutsPrepareAndExcuteFilter作为前端控制器,是整个Struts2的调度中心。

2. ActionMapper:ActionMapper负责识别当前的请求是否需要Struts2做出处理。

3. ActionProxy:这个对象作为Action与xwork之间的中间层,会代理Action的运行过程。

4. ActionInvocation:ActionInvocation对象描述了Action运行的整个过程。

5. 进入拦截器

6. Action

7. result:获取页面处理模板

8. 退出拦截器

9. httpServetResponse

Struts2 拦截器 和 过滤器 的区别 :

1. 拦截器只能对Action请求起作用,而过滤器则可以对几乎所有请求起作用。

2. 拦截器可以访问Action上下文、值栈里的对象,而过滤器不能。

3. 在Action的生命周期中,拦截器可以多次调用,而过滤器只能在容器初始化时被调用一次。

Struts2 中的默认包 struts-default 有什么作用?

1). struts-default 包是 struts2 内置的,它定义了 struts2 内部的众多拦截器和 Result 类型,而 Struts2 很多核心的功能都是通过这些内置的拦截器实现,如:从请求中把请求参数封装到action、文件上传和

数据验证等等都是通过拦截器实现的。当包继承了struts-default包才能使用struts2为我们提供的这些功能。

2). struts-default 包是在 struts-default.xml 中定义,struts-default.xml 也是 Struts2 默认配置文件。Struts2 每次都会自动加载 struts-default.xml文件。

3). 通常每个包都应该继承 struts-default 包。

1. 防止表单重复提交的两种方式:

1). 通过重定向。页面重定向到完成页面。(推荐)

2). 通过session token(token令牌)

2. 在web.xml中设置字符编码

3. * 的运用

4. struts-2.0.dtd用于检查struts2.xml的格式

5. token拦截器的参数名只能是includeMethods,不可以是excludeMethods。

6.  default.properties的位置

7. 提交页面后缀加不加action根据web.xml中的过滤器而定。

8. stuts2标签提交方式自动设为post。

9. struts2标签,密码不会显示。

10. strust2每次访问都生成一个新的action对象。

11. action一般继承com.opensymphony.xwork2.ActionSupport。

12. 先类型转换,  后输入校验。 有错误时会自动存入到fieldError中。

13. 使用框架来验证错误信息(有相应的dtd文件和war包中的例子,可以帮助)

里面可以用el表达式。<message>中还可以通过key来取值,可以使用国际化:

type的值是特定的。

对应国际化的properties文件

帮助文档在:xwork-core-2.2.1.jar中的:

defalut.xml中。

框架内部自动会消除网页传过来内容中的空格(doTrim),可以通过<param name="trim">false</param>不让它消除空格。用框架验证来消除填写空格麻烦事。!!!!!!!!!!不配置trim。

14. chain 一个action到另一个action,在 一个请求中 。redirect  两个请求。

15. ActionContext的getSession方法返回的是一个map集合。该map集合是session底层实现,键值对。存到session中的值,可以通过map.get()方法取出来。

16. struts的配置文件中,可以重定向到其他的action。若有参数,那么给谁传,参数跟谁中的属性名保持一致。重定向才能携带参数。请求转发中参数是页面传来的,配置文件中加的参数没效果。配置文件中加参数不常用。

17. 带参数重定向:

18. struts之所以能给参数自动赋值,找的是方法,不是找名字。

19. 可以让action实现接口Preparable接口,实现里面的prepare方法。该方法,在action中方法执行前先执行,可以用于初始化。

20. 无状态:没有可修改的成员变量

21. 拦截过滤的是execute方法。执行方法拦截器时,先检查是否需要拦截,再选择执行。

22. 

23. struts中可以新建一个struts.properties文件,它里面放相应的default.propertie中的相应属性等。可以通过struts.properties中配置文件来设置文件的上传大小(里面不要有乘法号(*))等在xml中

配置的constant配置的属性。struts.properties中配置的是全局的。

24. 

25. @Action中可以配置很多东西

26. strust2中配置文件加载顺序

27. 方法过滤拦截器,拦截方法。PreResultListener类监听器,它的beforeResult方法在拦截器的invoke执行后执行。

28. web.xml中的配置的文件,原filter不建议被使用了。

29. struts2提供了35拦截器,18个为默认。

30. struts标签hidden中加name值,会自动找到value值。若也加上value值,实际value值将无法显示。

struts2 笔记04 杂记的更多相关文章

  1. Struts2笔记04——Hello World Example(转)

    原文地址:https://www.tutorialspoint.com/struts_2/ [注释]项目结构,次序估计有误 通过学习Struts2的架构,我们可以知道,在Struts2 web应用中, ...

  2. JS自学笔记04

    JS自学笔记04 arguments[索引] 实参的值 1.对象 1)创建对象 ①调用系统的构造函数创建对象 var obj=new Object(); //添加属性.对象.名字=值; obj.nam ...

  3. JAVA自学笔记04

    JAVA自学笔记04 1.switch语句 1)格式:switch(表达式){ case 值1: 语句体1; break; case 值2: 语句体2; break; - default: 语句体n+ ...

  4. 机器学习实战(Machine Learning in Action)学习笔记————04.朴素贝叶斯分类(bayes)

    机器学习实战(Machine Learning in Action)学习笔记————04.朴素贝叶斯分类(bayes) 关键字:朴素贝叶斯.python.源码解析作者:米仓山下时间:2018-10-2 ...

  5. CS229 笔记04

    CS229 笔记04 Logistic Regression Newton's Method 根据之前的讨论,在Logistic Regression中的一些符号有: \[ \begin{eqnarr ...

  6. SaToken学习笔记-04

    SaToken学习笔记-04 如果有问题,请点击:传送门 角色认证 在sa-token中,角色和权限可以独立验证 // 当前账号是否含有指定角色标识, 返回true或false StpUtil.has ...

  7. Redis:学习笔记-04

    Redis:学习笔记-04 该部分内容,参考了 bilibili 上讲解 Redis 中,观看数最多的课程 Redis最新超详细版教程通俗易懂,来自 UP主 遇见狂神说 10. Redis主从复制 1 ...

  8. Java:并发笔记-04

    Java:并发笔记-04 说明:这是看了 bilibili 上 黑马程序员 的课程 java并发编程 后做的笔记 本章内容-3 线程状态转换 活跃性 Lock 3.10 重新理解线程状态转换 假设有线 ...

  9. struts2.1笔记04:struts2优点

随机推荐

  1. 玩转HTML5移动页面

    (1) 动画雪碧图涉及的动画十分多,用的元素也十分多,请务必使用雪碧图(Sprite)!网上的工具有一些可以帮助你生成雪碧图的工具,例如CssGaga,GoPng等等,自动化构建工具Grunt和Gul ...

  2. PHP5下SOAP调用实现过程

    本文以某公司iPhone 6手机预约接口开发为例,介绍PHP5下SOAP调用的实现过程. 一.基础概念 SOAP(Simple Object Access Protocol )简单对象访问协议是在分散 ...

  3. 删除SSMS中保存的帐户信息

    通常我们在对象资源管理器中连接服务器时,会发现在服务器名称下保存有之前的实例信息.随着连接增多,要找某个连接还得费劲.sql2012:此时可以删除C:\Users\Administrator\AppD ...

  4. C#和VC++字符集和编码

    C# char 关键字用于声明 .NET framework 使用 Unicode 字符表示 System.Char 结构的实例. Char 对象的值是 16 位数字 (序号值.)将字符表示为 UTF ...

  5. ios数字转emoj表情

    +(NSString *)convertSimpleUnicodeStr:(NSString *)inputStr{ ,); UTF32Char inputChar = ; // unicodeInt ...

  6. 当数据库某张表数据发生变化时,更新c#程序中缓存的用法

    参考:http://www.webkaka.com/tutorial/asp.net/2012/111912/(SqlDependency和SqlCacheDependency缓存的用法及具体步骤) ...

  7. 推荐几个sql server牛人的博客

    Aaron Bertrand http://sqlblog.com/blogs/aaron_bertrand/ Brent Ozar www.brentozar.com/ Buck Woody htt ...

  8. java io读书笔记(6) Writing Arrays of Bytes

    显而易见,一次性写出一堆数据,要比一个byte一个byte的写,快多了,因此,outputstream,给出了2个增强型的write: public void write(byte[] data) t ...

  9. PostgreSQL Replication之第十章 配置Slony(1)

    在PostgreSQL领域中,Slony是最广泛的复制解决方案之一.它不仅是最老的复制方案实现的一个,但也是有最多的外部工具支持的一个,例如PgAdmin3等. 在本章中,我们将深入探究Slony并学 ...

  10. FlashBuilder 4.7 win64 和 mac版 下载地址

    win64 http://trials3.adobe.com/AdobeProducts/FLBR/4_7/win64/FlashBuilder_4_7_LS10_win64.exe mac http ...