流程:

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. ubuntu 12.04安装jdk1.8

    转自http://blog.chinaunix.net/uid-26404477-id-3471246.html 在安装之前,系统没有任何jdk软件,也就是说在终端执行 java -version 将 ...

  2. 10月12号 晚八点 Speed-BI 云平台-基于Excel数据源的管理驾驶舱构建全过程,腾讯课堂开课啦

    认真地做了一大摞一大摞的报表,老板没时间看?努力把能反馈的内容都融汇进图表里,老板嫌复杂?做了几个简单的报表,老板一眼就觉得信息不全面?每个报表都用了各种各样的图表,老板却毫无兴趣?明明很努力了,为什 ...

  3. Android --ListView使用ArrayAdapter

    1.继承ArrayAdapter public class TimerDataAdapter extends ArrayAdapter<TimerDataListItem> { //数据I ...

  4. RFS_注释

    1.  注释的操作如下:

  5. box2dweb之关节joint(连接器)

    1 概述 前篇基础文章看完后基本上就应该对box2dweb能上手了,下面来介绍一下box2dweb非常重要的一个概念,关节(joint)也有叫连接器的,总之是一个意思.下面是关节详细的类库说明: BO ...

  6. iOS 对UIButton的imageView和titleLabel进行重新布局

    #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @pr ...

  7. system(linux) power on note

    读詹荣开文档摘 BIOS 在完成硬件检测和资源分配后,将硬盘 MBR 中的 Boot Loader 读到系统的 RAM 中,然后将控制权交给 OS Boot Loader Boot Loader执行全 ...

  8. winner tree 胜者树

    在树形选择排序中,利用锦标赛思想建立的树称为胜者树. 1.每个非终端节点存储的是左右孩子节点中的优胜者. 2.通过减少比较次数,提高效率. 3.胜者树就是一颗特殊的线段树. 一.构建树 Procedu ...

  9. 数据库调优过程(二):找到IO不存在问题,而是sqlserver单表写入IO瓶颈

    物理机上测试IO是否为瓶颈: 使用一个死循环insert into测试数据库最大写入速度: use [iTest]; declare @index int; ; begin ; INSERT into ...

  10. [phonegap]安装phonegap

    下载nodejs,安装,单nodejs4.0.0 x64编译时,还需要python2.6 or python2.7: 参考怎么安装python2.7:            http://jingya ...